Как отловить ошибки сервера node.js / express, такие как EADDRINUSE?

Это мой код.

if !module.parent
    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 - это сервер express.js . Мне сложно понять, почему ошибки, возникающие в результате hons_server.listen () , не обнаруживаются попытка / улов. Когда я дважды запускаю свой сервер, я получаю результат:

$ 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)

Я хотел бы знать, почему выданная ошибка не обнаруживается и как / где я могу поймать ошибку EADDRINUSE.

29
задан Hubro 30 October 2019 в 00:00
поделиться

2 ответа

Прослушивание события error на экземпляре сервера

hons_server.on 'error', (err) ->
    console.log 'there was an error:', err.message
.
21
ответ дан 28 November 2019 в 01:41
поделиться

Принятое решение не сработало для меня на nodejs 0.8.22 и express 3.1.0.

Это помогло:

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

Также см. Node.js Express обрабатывает ошибки запуска приложения

25
ответ дан 28 November 2019 в 01:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: