Este es mi código (Es CoffeeScript y utiliza colores, pero eso no es relevante)¿Cómo atrapo los errores del servidor node.js/express como EADDRINUSE?
# 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 express.js server. Me está costando entender por qué los errores arrojados como resultado de hons_server.listen()
no son detectados por el try/catch. Cuando ejecuto mi servidor dos veces consigo la salida:
$ 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é el error que se produce no es capturado, y cómo/dónde puedo detectar el error EADDRINUSE.
Por curiosidad, ¿cómo lo sabes? Sé que no estaba en [la documentación] (http://expressjs.com/guide.html) y no puedo encontrar nada sobre qué eventos admite el servidor express – Hubro
Básicamente, el servidor express es el [Servidor http] (http://nodejs.org/docs/latest/api/http.html#http_class_http_server), que es un emisor de eventos. –
¿Esto todavía funciona en la versión más nueva de Node? Por favor revisa la respuesta a continuación y actualiza la tuya si es necesario. – Hubro