【问题标题】:Pass object through NodeJS to PHP通过 NodeJS 将对象传递给 PHP
【发布时间】:2015-01-13 20:13:19
【问题描述】:

我正在尝试使用两个键/值传递对象,当我让 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);

由于var_dump,现在我在我的网页上看到了string '[object Object]

我试过做类似的事情

$url1 = $responseFromNode->url1

$url1 = $responseFromNode['url1']

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

任何提示将不胜感激。

【问题讨论】:

  • 我不知道这是不是一个错字,但你有var_dump($responseFromRuby).. 你不是说$responseFromNode 吗?
  • 他可能正在使用var_dump 来查看他是否从节点服务器获得了他所期望的。至于如何做到这一点,让你的 Node 端像一个 rest API,服务 JSON,在 PHP 中使用 cURL 向你的 Node 应用程序发出请求。从那里开始会很容易。
  • 您还应该更改您的内容类型:res.writeHead(200, {'Content-Type': 'application/json'});

标签: php node.js object


【解决方案1】:

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 字符串

【讨论】:

  • 您好 Juan,感谢您的回复,它对我的​​帮助完全符合我的需要。并感谢您指出倒置的 var 名称。我会尽快标记您的帖子已回复:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 2018-03-24
  • 2016-06-06
  • 2017-03-02
相关资源
最近更新 更多