gpt4 book ai didi

node.js - 如何捕获像 EADDRINUSE 这样的 node.js/express 服务器错误?

转载 作者:IT老高 更新时间:2023-10-28 22:00:22 25 4
gpt4 key购买 nike

这是我的代码。

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_serverexpress.js server .我很难理解为什么由于 hons_server.listen() 引发的错误不会被 try/catch 捕获。当我运行我的服务器两次时,我得到了输出:

$ coffee src/server.coffeeListening to port 9090node.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 错误。

最佳答案

接受的解决方案不适用于 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 app handle startup errors

关于node.js - 如何捕获像 EADDRINUSE 这样的 node.js/express 服务器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9544479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com