节点程序没有退出

时间:2014-11-04 16:00:46

标签: javascript node.js

我是node.js的新手。在尝试通过节点使用GET方法发出http请求时,程序打印“得到响应:302”并保持不存在而不退出。根据代码,它必须在打印后从节点出来。无法在不退出程序的情况下理解节点等待某些内容的原因。

var options = {
  host: 'www.google.com',
  port: 80,
  path: '/index.html'
};

http.get(options, function(res) {
  console.log("Got response: " + res.statusCode);
}).on('error', function(e) {
  console.log("Got error: " + e.message);
});

2 个答案:

答案 0 :(得分:2)

默认情况下,在节点v0.10 +中,可读流以暂停状态开始,以防止数据丢失。因此,如果有响应数据等待,您需要耗尽响应以使进程自然退出:

http.get(options, function(res) {
  console.log("Got response: " + res.statusCode);

  // this forces streams1 behavior and starts emitting 'data' events
  // which we ignore, effectively draining the stream ...
  res.resume();
}).on('error', function(e) {
  console.log("Got error: " + e.message);
});

答案 1 :(得分:1)

您需要阅读或取消答案,否则它将保持待定状态:

http.get(options, function(res) {
  console.log("Got response: " + res.statusCode);
  res.on('data', function (chunk) {
    // you might want to use chunk
  });
}).on('error', function(e) {
  console.log("Got error: " + e.message);
});

请注意,此处明显缺少http.get official documentation