2017-06-16 21 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; 
} 

這種設置返回未定義。如何使用Node訪問POST參數?

回答

0

那麼,答案很簡單。在節點腳本改變五號線如下:

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

您不必運行服務器,如果他們是同一臺機器,你可以使用PHP``它解釋命令行上。不需要在同一臺機器上運行http來訪問它。