node.jsサーバーでJavaScriptを実行する方法

fredtma

node.jsサーバーを作成しました。
リクエストからHTTPPOST変数とGET変数を抽出できます。
これらの変数をサーバー上のjsスクリプトに渡して実行したいと思います。
PHPでスクリプトを実行するには、@ www.example.com / path / file.php?variable = valueでそれをポイントします。

<?php echo "You have ".$_GET['variable'];?>

noge.js @ www.example.com/path/file.njs?variable=valueで同じことを達成したい
私の問題は、file.njsがテキストとして実行されることです。私はエクスプレスを使用していません、それなしの解決策をいただければ幸いです。

 var sys=require("sys"),
 http=require("http"),
 path=require("path"),
 url=require("url"),
 filesys=require("fs"),
 mime=require("./node_modules/mime"),
 head=require("./node_modules/headers/initreq.njs");//this is used to extract the header
 http.createServer(handler).listen(80);//handler function is below
 sys.puts("Node Server Running on 80");

 function handler(request,response){
    var myPath=url.parse(request.url).pathname;//get the url
    var ext=myPath.replace(/(.)*\./,'');//get the extension
    var fullPath=path.join(process.cwd(),myPath);//get the working dir & join it with current working dir
    var mimeResult=mime.lookup(fullPath),acceptExt=['html','njs'];  

    if(acceptExt.indexOf(ext)!=-1){//only search HTTP header for html|njs files
        head.init(request,response,setContent);//head will correctly contain the $_GET AND $_POST variable
    } else {setContent();}  

    function setContent(){
        path.exists(fullPath,function(exists){
            if(!exists){
                response.writeHeader(404, {"Content-Type":"text/plain"});
                response.write("404 Not Found:: "+fullPath+"\n");
                response.end();
            }else{
                filesys.readFile(fullPath,"binary",function(err,file){
                    if(err){
                        response.writeHeader(500,{"Content-Type":"text/plain"});
                        response.write(err+"::"+myPath+"\n");
                        response.end();
                    }else{                      
                        response.setHeader("Content-Type", mimeResult);
                        response.writeHeader(200);
                        response.write(file,"binary");//this is the file that i want to execute and pass the $_POST & $_GET variable
                        response.end();
                    }
                });
            }
        });
    }
   sys.puts("Requested:: "+myPath.replace(/(.)*\//,'')+" - "+mimeResult );   
 }
fredtma

要約すると、私が達成したかったのは、PHPのようなnode.jsを使用することです。www.example.com/path/file.php?variable=valueの
ようなPHPファイルをnode.jsで実行するにはwww.example.com/path/file.js?variable=value私が思いついた解決策は、要求されたJavaScriptをモジュールに入れ、関数に含めます例えば



require

http.createServer(function(req,res){
   var myPath=url.parse(req.url).pathname;//get the url
   var fullPath=path.join(process.cwd(),myPath);//get the working dir & join it with current working dir
    require(fullPath).content(req,res);//this is where the requested script is executed as a module. make sure to end the response (response.end()) in the module
});

徹底的にテストされていませんが、このソリューションは私にとってはうまく機能し、動的ページにも使用できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

スポーンでサブサーバーnode.jsを実行および停止する方法は?

分類Dev

IonicモバイルアプリでNode.jsサーバーを実行する方法は?

分類Dev

Nodeでバックエンドサーバーを実行する方法は?

分類Dev

node.jsでサーバー側を実装する

分類Dev

awsubuntuサーバーでserver.listenを実行するとnode.jsエラーが発生する

分類Dev

mongodbエラーでnode.jsサーバーを実行しています

分類Dev

Node.jsとnpmのインストール後にライブサーバーを実行する方法

分類Dev

Windows10でNode.jsサーバーを再実行するとEADDRINUSEエラーが発生します

分類Dev

Node.jsでHTTPSサーバーを作成する方法

分類Dev

Node.js-package.jsonを使用して複数のサーバーを実行する方法

分類Dev

node.jsサーバーでThree.jsWebGLRendererを実行することは可能ですか?

分類Dev

Expressを使用してnode.jsで同じポート番号でhttpサーバーとhttpsサーバーを実行することは可能ですか?

分類Dev

NodeサーバーなしでAngularJS2アプリケーションを実行する方法

分類Dev

Node.js:同じサーバーで複数のアプリを実行する

分類Dev

同じサーバーで複数のNode.jsアプリを実行する

分類Dev

Node.js:同じサーバーで複数の異なるアプリを実行してCPU使用率を最適化する方法は?

分類Dev

node.jsサーバーに-toDataURL()関数を実装する方法は?

分類Dev

jQueryAJAXを使用してボタンクリック後にnode.jsサーバーでアクションを実行する方法

分類Dev

Node.jsでサーバー送信イベントを実装する簡単な方法は?

分類Dev

Azureで実行されているNode-OPCUAサーバーを実行する必要がありますか?

分類Dev

Node.jsサーバーを起動するgulpを使用してコマンドを実行する

分類Dev

node.jsでコードを1行ずつ実行する方法

分類Dev

JavaScript文字列をnode.jsの実行可能コードに変換する方法

分類Dev

UbuntuでNode.jsをサービスとして実行する

分類Dev

UbuntuでNode.jsをサービスとして実行する

分類Dev

Node.js Cassandraドライバーで連続クエリを実行する方法は?

分類Dev

Windowsマシンで異なるバージョンで2つのnode.JSサーバーを同時に実行する

分類Dev

iOS / Androidで実行されているNode.jsサーバー

分類Dev

Node.jsエラー:予期しないサーバー応答:301-NamecheapWebhostでNode.jsWebsocketサーバーを実行しています

Related 関連記事

  1. 1

    スポーンでサブサーバーnode.jsを実行および停止する方法は?

  2. 2

    IonicモバイルアプリでNode.jsサーバーを実行する方法は?

  3. 3

    Nodeでバックエンドサーバーを実行する方法は?

  4. 4

    node.jsでサーバー側を実装する

  5. 5

    awsubuntuサーバーでserver.listenを実行するとnode.jsエラーが発生する

  6. 6

    mongodbエラーでnode.jsサーバーを実行しています

  7. 7

    Node.jsとnpmのインストール後にライブサーバーを実行する方法

  8. 8

    Windows10でNode.jsサーバーを再実行するとEADDRINUSEエラーが発生します

  9. 9

    Node.jsでHTTPSサーバーを作成する方法

  10. 10

    Node.js-package.jsonを使用して複数のサーバーを実行する方法

  11. 11

    node.jsサーバーでThree.jsWebGLRendererを実行することは可能ですか?

  12. 12

    Expressを使用してnode.jsで同じポート番号でhttpサーバーとhttpsサーバーを実行することは可能ですか?

  13. 13

    NodeサーバーなしでAngularJS2アプリケーションを実行する方法

  14. 14

    Node.js:同じサーバーで複数のアプリを実行する

  15. 15

    同じサーバーで複数のNode.jsアプリを実行する

  16. 16

    Node.js:同じサーバーで複数の異なるアプリを実行してCPU使用率を最適化する方法は?

  17. 17

    node.jsサーバーに-toDataURL()関数を実装する方法は?

  18. 18

    jQueryAJAXを使用してボタンクリック後にnode.jsサーバーでアクションを実行する方法

  19. 19

    Node.jsでサーバー送信イベントを実装する簡単な方法は?

  20. 20

    Azureで実行されているNode-OPCUAサーバーを実行する必要がありますか?

  21. 21

    Node.jsサーバーを起動するgulpを使用してコマンドを実行する

  22. 22

    node.jsでコードを1行ずつ実行する方法

  23. 23

    JavaScript文字列をnode.jsの実行可能コードに変換する方法

  24. 24

    UbuntuでNode.jsをサービスとして実行する

  25. 25

    UbuntuでNode.jsをサービスとして実行する

  26. 26

    Node.js Cassandraドライバーで連続クエリを実行する方法は?

  27. 27

    Windowsマシンで異なるバージョンで2つのnode.JSサーバーを同時に実行する

  28. 28

    iOS / Androidで実行されているNode.jsサーバー

  29. 29

    Node.jsエラー:予期しないサーバー応答:301-NamecheapWebhostでNode.jsWebsocketサーバーを実行しています

ホットタグ

アーカイブ