我用以下http.get()
調用調用本地端點:需要更好的Node.js http.get請求錯誤處理
http.get({
host: 'localhost',
port: 80,
path: '/service/info?id=' + id
}, function(response) {
console.log(response);
response.setEncoding('utf8');
var data = "";
response.on('data', function(chunk) {
data += chunk;
});
response.on('end', function() {
if(data.length > 0) {
try {
var data_object = JSON.parse(data);
} catch(e) {
return;
}
}
});
}).on("error", function(){console.log("GET request error")});
但是,如果我發送一個畸形的請求,這會觸發一個HTTP 400,請求是綜合不正確等,即使在function(response)
的response.statusCode
是400,這將在http.get()
最終的catch() response.on('end', function() {}
,而不是發出錯誤的事件,我不知道爲什麼是這樣的話,如何我可以處理HTTP 400響應,對節點的錯誤。 JS。
如果它進入catch(e)
,它會等待很長一段時間,直到它反應什麼給客戶端,這也是很奇怪。我希望服務器儘快響應客戶端,它會觸及400。
我明白了,我會嘗試,事件 – ttback