Sto cercando di rilevare errori ECONNREFUSED quando si utilizza un client HTTP in node.js. Sto facendo domande come questa:Catching ECONNREFUSED in 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
});
io non riesco a capire come prendere questo errore:
Error: connect ECONNREFUSED
at errnoException (net.js:614:11)
at Object.afterConnect [as oncomplete] (net.js:605:18)
Se lo faccio request.on('error', function() {});
, essa non prenderlo. Se lo faccio in questo modo:
var req = request.on(etc)
req.on('error', function blah() {});
allora ottengo TypeError: Object false has no method 'on'
.
Devo davvero fare un errore di livello superiore non rilevato per gestire questo problema? Al momento qualunque cosa faccia, il mio intero processo si interrompe.
Edit: ho trovato alcuni post del blog su come farlo creando un oggetto connection
, chiamando request
su questo, e quindi vincolante per gli errori sull'oggetto connection
, ma non che rendono l'intero http.request()
scorciatoia inutile?
L'ho capito. È perché stavo facendo questo: var req = http.richiesta (opzioni) .on ('response', function (res) { // fare alcune cose }). end(); req.on ('error', handleError); Stavo chiamando il req.on dopo aver chiamato end(). Facepalm! – Cera
Per le viste future, si sarebbe in grado di pubblicare un collegamento a quel post del blog? Penso che sarebbe molto utile avere qui. – CSilivestru