Estoy tratando de detectar los errores ECONNREFUSED cuando uso un cliente HTTP en node.js. Estoy haciendo peticiones como esto:Captura ECONNREFUSED en node.js con http.request?
var http = require('http');
var options = { host: 'localhost', port: '3301', path: '/', method: 'GET' };
http.request(options).on('response', function (res) {
// do some stuff
});
no puedo encontrar la manera de atrapar a este error:
Error: connect ECONNREFUSED
at errnoException (net.js:614:11)
at Object.afterConnect [as oncomplete] (net.js:605:18)
Si hago request.on('error', function() {});
, no cogerlo. Si lo hago así:
var req = request.on(etc)
req.on('error', function blah() {});
en cuando me siento TypeError: Object false has no method 'on'
.
¿Realmente tengo que hacer un error de nivel superior no capturado para hacer frente a esto? Por el momento todo lo que hago, todo mi proceso se cierra.
Edición: He encontrado algunas entradas de blog sobre cómo hacerlo mediante la creación de un objeto connection
, llamando request
en eso, y luego unirse a errores en el objeto connection
, pero ¿no lo hace todo el http.request()
acceso directo inútil?
Me di cuenta de esto. Es porque estaba haciendo esto: var req = http.solicitud (opciones) .on ('respuesta', función (res) { // hacer algunas cosas }). end(); req.on ('error', handleError); Estaba llamando a la llamada después de llamar a fin(). Facepalm! – Cera
Para vistas futuras, ¿podría publicar un enlace a esa publicación de blog? Creo que sería muy útil tener aquí. – CSilivestru