2014-11-04 54 views
1

我是node.js的新手。當試圖通過節點使用GET方法發出一個http請求時,程序打印出「Got Response: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); 
}); 
+3

@bencripps不,你通常不需要 – 2014-11-04 16:03:43

回答

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

您需要閱讀或取消答案,或者它保持掛起:

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