错误:监听 EADDRINUSE :::port

错误:监听 EADDRINUSE :::port

我是一名新手,正在学习 JS。当我尝试在终端上输入命令“node index.js”来运行我的 nodejs 程序时。它通过端口 3000 连接。然后我通过“Ctrl + Z”退出程序(我尝试使用 C,但没有成功)。程序确实退出了,但下次我尝试“node index.js”时,它显示错误:listen EADDRINUSE :::3000。然后我检查了这个错误,并找到了一个解决方案,即使用命令“kill -9 port”杀死 PID,但它只起作用一次,然后我必须再次执行此操作,我也尝试连接并在 aws 上运行静态 Web,发生了同样的错误,但使用另一个端口。我不想像这样一次又一次地杀死并运行,所以希望有人能帮助我摆脱这个烦人的问题。提前致谢

答案1

Ctrl+C应该可以工作。它应该SIGINT向进程发送一个信号,允许它正常结束。对此没有解决方法;您总是必须终止节点进程。

与我合作的大多数开发人员都使用npmpm2来管理其节点应用程序的启动和停止。例如,在package.json

"scripts": {
  "start": "node server.js",
  "stop": "node stop.js"
}

停止.js:

const io = require('socket.io-client');
const socketClient = io.connect('http://localhost'); // Specify port if your express server is not using default port 80

socketClient.on('connect', () => {
  socketClient.emit('npmStop');
  setTimeout(() => {
    process.exit(0);
  }, 1000);
});

这样,您不仅可以优雅地停止应用程序,还可以添加您希望在应用程序退出之前发生的任何其他步骤。

相关内容