小编典典

节点/快递:EADDRINUSE,地址已在使用 - 终止服务器

all

我有一个使用连接在 node.js 中运行的简单服务器:

var server = require('connect').createServer();
//actions...
server.listen(3000);

在我的代码中,我有实际的处理程序,但这是基本思想。我不断遇到的问题是

EADDRINUSE, Address already in use

我在之前崩溃或错误后再次运行我的应用程序时收到此错误。由于我没有打开终端的新实例,因此我使用ctr + z.

我相当肯定我所要做的就是关闭服务器或连接。我试着打电话没有运气server.close()process.on('exit', ...);


阅读 210

收藏
2022-03-04

共1个答案

小编典典

process.on('exit', ..)如果进程崩溃或被杀死,则不会调用。它仅在事件循环结束时被调用,并且由于server.close()
某种 结束事件循环(它仍然必须在这里和那里等待当前正在运行的堆栈),所以将它放在退出事件中是没有意义的......

崩溃时,执行process.on('uncaughtException', ..)和杀死执行process.on('SIGTERM', ..)

话虽如此,SIGTERM(默认终止信号)让应用程序清理,而 SIGKILL(立即终止)不会让应用程序做任何事情。

2022-03-04