我有以下javascript node.js代码:
var options = {
host: "x.y.z"
,path: "/api/abc/"
,method: "GET"
};
var req = http.request(options);
req.on('response' , function(data) {
console.log("response: ",data.statusCode);
done();
});
req.on('error' , function() {
console.log("error");
done();
});
req.end();
当发生实际的HTTP请求错误时,我无法获得error
事件。我错过了什么?
初步调查结果:看来失败案例"服务器无响应" (例如由于网络问题)不会触发任何事件。因此,解决方法是创建一个计时器'并自己陷入这种状况。
答案 0 :(得分:0)
尝试使用if / else语句而不是两个独立的函数。
if(response you want && response.statusCode = 200){
//logic
} else {
//console.log("error")
}
答案 1 :(得分:0)
您应该在请求中创建自己的超时功能。事实上,我相信经过很长时间(也许一分钟?)后,请求会失败。但是,如果你需要更早的东西,你可以检查这个要求同样的东西: