我是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);
});
答案 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。