通过NodeJS将对象传递给PHP

时间:2015-01-13 20:13:20

标签: php node.js object

我正在尝试使用两个键/值传递对象,当我将Apache连接到它时,我想在另一端读取它。

我的nodejs服务器如下所示:

var sWeather = {"url1": "something", "url2": "another"};
var oWeather = JSON.stringify(sWeather);
console.log(sWeather);


var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(sWeather+'\n');
}).listen(1340, '#');
console.log('Server running at http://###/');

现在我对nodejs真的很陌生,我尝试了很多东西,所以我不确定在发送之前是否需要对sWeather进行字符串化。

我的PHP文件是这样的:

<?php
$responseFromNode = file_get_contents("IP address");
var_dump($responseFromRuby);

现在我因string '[object Object]而在我的网页上获得了var_dump

我尝试过像

这样的事情
$url1 = $responseFromNode->url1

$url1 = $responseFromNode['url1']

我只想将两个网址作为字符串访问,以便我可以存储它。

任何提示都将受到高度赞赏。

1 个答案:

答案 0 :(得分:3)

oWeather是JSON字符串。改变

res.end(sWeather+'\n');

res.end(oWeather+'\n');

然后PHP方必须解码JSON

$responseFromNode = json_decode( file_get_contents("IP address") );

备注:

  • 您还应更改内容类型:res.writeHead(200, {'Content-Type': 'application/json'});,如Brian Glaz
  • 所述
  • 您的变量名称被反转:
    • oWeather应该是对象
    • sWeather应该是JSON字符串