0

投稿リクエストを送信しようとしていますが、送信されません。ブラウザのコンソール ログに出力がありません。

ノード server.js は xxxx:8000 で実行されており、それを client.html に接続します。xxxx:8000/client.html

これが私のnode.jsサーバーです。

function handler (req, res) {

  var filepath = '.' + req.url;
  if (filepath == './')
      filepath = './client.html';

  var extname = path.extname(filepath);
  var contentType = 'text/html';

  switch(extname){
    case '.js':
            contentType = 'text/javascript';
            break;
    case '.css':
            contentType = 'text/css';
            break;
  }

  path.exists(filepath, function (exists){
        if (exists){
            fs.readFile(filepath, function(error, content){
                if(error){
                    res.writeHead(500);
                    res.end();
                }
                else{
                    res.writeHead(200, { 'Content-Type': contentType });
                    res.end(content, 'utf-8');
                }
            });
        }
        else{
            res.writeHead(404);
            res.end();
        }
  });


}

JAVASCRIPT CODE - 私は ajax 呼び出しを使用しており、COMMAND.php にリクエストを送信しています

 $.post( 
                '/var/www/COMMAND.php', 
                { cmd: "OUT" }, 
                function( data ){  

               console.log(data);



                });

PHP COMMAND.php - Linux の名前付きパイプに書き込みます。書き込みが完了すると、成功がエコーされます。

<?php

if ($_POST['cmd'] === 'OUT') {
    $con = fopen("/tmp/myFIFO", "w");
    fwrite($con, "OUT\n");
    fclose($con);
    echo "SUCCESS";
    exit;
}

?>

COMMAND.php に投稿リクエストが送信されないのはなぜですか? COMMAND.php を呼び出してコマンドを実行する方法はありますか?

4

1 に答える 1

1

NodeJS は PHP ではなく JS を実行するためです。また、ファイル処理が組み込まれている Apache とは異なり、NodeJS ではコードを作成するか、既存のライブラリを使用して URL をファイルにルーティングする必要があります。

あなたの質問に関しては、それはあなたのいずれかです:

  • その PHP を実行する別のサーバーをセットアップします。AJAX が NodeJS サーバーを呼び出しています。そのリクエストを NodeJS から PHP サーバー (Apache など) にルーティングして、基本的に NodeJS をプロキシのように動作させることができます。

  • または、PHP スクリプトと同様のルーチンを実行するNodeJS 用の JavaScript でコードを作成すると、PHP や別のサーバーはもう必要ありません。

于 2013-05-21T03:18:02.387 に答える