У меня есть следующий яваскрипта Node.js код:Узел http.ClientRequest не срабатывает «ошибка» событие
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();
Я не могу получить error
событие, когда происходит фактическая ошибка запроса HTTP. Что мне не хватает?
Предварительные выводы: Казалось бы, что в случае неудачи «нет ответа от сервера» (например, из-за неполадки в сети) не срабатывает какое-либо событие. Итак, обходным путем является создание «таймера» и ловушка этого условия самостоятельно.
Ваш код работает как (с 'done' вызовы удаляются и' вар HTTP = требуется (» http '), 'добавлено, конечно). Обработчик 'error' вызывается немедленно, если ошибка немедленна (например, соединение отказано, домен не найден ...), немного позже, если ошибка занимает некоторое время (например, время ожидания). – jcaron