1

我是 Node.js 的初学者,因此根据项目要求,我尝试从 Node.js 调用 REST 服务,我从这个 SO question中获得了有关如何调用 rest 的信息。这是进行休息调用的代码:

var options = {
 host: url,
 port: 80,
 path: '/resource?id=foo&bar=baz',
 method: 'POST'
};

http.request(options, function(res) {
  console.log('STATUS: ' + res.statusCode);
  console.log('HEADERS: ' + JSON.stringify(res.headers));
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk); //I want to send this 'chunk' as a response to browser
  });
}).end();

问题是我想chunk作为对浏览器的响应发送,我试过res.write()但它给我抛出错误“找不到写入方法”。我到处查看文档,但他们给出的只是console.log。谁能让我知道如何将该数据作为对浏览器的响应发送?

4

1 回答 1

1

回调http.request是 的一个实例IncomingMessage,它是一个Readable没有write方法的 Stream。使用 发出 HTTP 请求时http.request,您无法发送响应。HTTP 是一种面向请求-响应-消息的协议。

如何将该数据作为响应发送到浏览器?

为了让浏览器能够获得响应,它必须首先发出请求。您必须运行一个服务器,该服务器在收到请求时调用 REST 服务。

http.createServer(function(req, res) {
  var data = getDataFromREST(function(data) {
    res.write(data);
    res.end();
  });

});
于 2013-08-12T04:46:11.053 回答