从Node.js进行REST调用并向浏览器发送响应

时间:2013-08-12 03:44:38

标签: node.js rest

我是Node.js的初学者,所以根据项目要求,我试图从Node.js调用REST服务,我得到了如何从this SO question调用休息的信息。以下是进行休息呼叫的代码:

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。任何人都可以让我知道如何将该数据作为对浏览器的响应发送?

1 个答案:

答案 0 :(得分:1)

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

  

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

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

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

});