Questo è il mio codice (E 'CoffeeScript e utilizza i colori ma non è rilevante)Come posso rilevare errori node.js/express server come 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
è un express.js server. Sto avendo difficoltà a capire perché gli errori generati come risultato di hons_server.listen()
non vengono catturati dal try/catch. Quando eseguo il mio server per due volte ho l'uscita:
$ 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)
Mi piacerebbe sapere il motivo per cui l'errore lanciato non si trova, e come/dove posso prendere l'errore EADDRINUSE.
Per curiosità, come hai fatto a saperlo? So che non era in [la documentazione] (http://expressjs.com/guide.html) e non riesco a trovare nulla su quali eventi il server express supporta – Hubro
Fondamentalmente, il server express è il [http Server] (http://nodejs.org/docs/latest/api/http.html#http_class_http_server), che è un emettitore di eventi. –
Funziona ancora nella versione più recente di Node? Si prega di controllare la risposta qui sotto e aggiornare il vostro se necessario. – Hubro