res node method handling error code await async node.js error-handling express

method - ¿Cómo atrapo node.js/express server errors como EADDRINUSE?



node js async await error handling (2)

Escuche el evento de error en el servidor isntance

hons_server.on ''error'', (err) -> console.log ''there was an error:'', err.message

Este es mi código (es coffeescript y usa colores pero eso no es relevante)

# If this module is executed if !module.parent # Start server try hons_server.listen config.port console.log ''Listening to port '' + config.port catch err console.error "Couldn''t start server: #{String(err)}".red

hons_server es un servidor express.js . Me está costando entender por qué los errores lanzados como resultado de hons_server.listen() no son detectados por try / catch. Cuando ejecuto mi servidor dos veces obtengo el resultado:

$ coffee src/server.coffee Listening to port 9090 node.js:201 throw e; // process.nextTick error, or ''error'' event on first tick ^ Error: listen EADDRINUSE at errnoException (net.js:632:11) at Array.0 (net.js:733:26) at EventEmitter._tickCallback (node.js:192:40)

Me gustaría saber por qué no se detecta el error arrojado y cómo / dónde puedo detectar el error EADDRINUSE.


La solución aceptada no funcionó para mí en nodejs 0.8.22 y express 3.1.0.

Esto hizo el truco:

process.on(''uncaughtException'', function(err) { if(err.errno === ''EADDRINUSE'') console.log(...); else console.log(err); process.exit(1); });

Consulte también Errores de inicio de la aplicación Express Node.js Express