2017-06-16 10 views
0

ノードアプリケーションをリクエストするためにApacheアプリケーションを実装するために、他の投稿からコードをいくつか取りました。 次のノードアプリケーションは動作しますが、未定義のポストパラメータにはアクセスできません。(apache、nodejs)PHPからノードアプリケーションをリクエストする

//NODE 
express = require('express'); 
bodyParser = require('body-parser'); 
app = express(); 
port = 3000; 
app.use(bodyParser.json()); 

app.post('/get_php_data', function (req, res) { 
    // php array will be here in this variable 
    var data = req.param.data; // I've tried req.body.data; 

    var response = String(data)+String((7*data+3*data+1*data) % 3); 
    console.log(req); // This seems log req parameter in a loop 
    res.send(data); 
}); 

app.listen(port); 

PHP-部分(ただ一つのパラメータでリクエストをPOST):

echo httpPost('localhost:3000/get_php_data', array('data' => 1)); 

function httpPost($url,$params) 
{ 
    $postData = http_build_query($params); 
    $ch = curl_init(); 

    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($ch,CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_POST, count($postData)); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); 

    $output=curl_exec($ch); 

    curl_close($ch); 
    return $output; 
} 

このセットアップはundefinedを返します。ノードでPOSTパラメータにアクセスするには?

答えて

0

まあ、答えは簡単でした。ノードのスクリプトでは、次のように5番目の行を変更します。彼らは同じマシン上にある場合

//app.use(bodyParser.json()); 
app.use(bodyParser()); 
0

あなたはコマンドラインを解釈し、PHPを ``使用することができますサーバーを実行する必要はありません。同じマシンでhttpを実行する必要はありません。

関連する問題