📌  相关文章
📜  events.js:291 抛出错误;未处理的“错误”事件 ^ 错误:监听 EADDRINUSE:地址已在使用中 :::3008 (1)

📅  最后修改于: 2023-12-03 15:14:54.862000             🧑  作者: Mango

错误:监听 EADDRINUSE:地址已在使用中 :::3008

这是一个常见的错误,通常发生在开发人员试图启动应用程序时。在这种情况下,该错误意味着端口号(本例中的3008)已在使用中。换句话说,另一个程序或实例已经在使用该端口号。

这可能发生在以下情况下:

  • 在同一台计算机上运行多个实例,它们尝试监听相同的端口号。
  • 另一个进程(例如 Web 服务器)已经在使用该端口号。

要解决此问题,可以尝试以下解决方法:

  1. 杀掉占用该端口号的进程。

可以使用以下命令检查具有该端口号的进程:

lsof -i tcp:3008

然后杀死该进程:

kill PID
  1. 更改应用程序的端口号。

如果另一个进程(例如 Web 服务器)正在使用该端口号,则可以更改应用程序的端口号。要更改端口号,请修改应用程序代码中的端口号,然后重新启动应用程序。

  1. 使用一个独占端口的标志

当你使用Node.js的http模块来建立一个HTTP服务时,你可以在创建这个监听的端口的时候,给参数添加一个exclusive(独占)标识符,如下:

const server = require('http').createServer(app);
server.listen({
   port: 3008,
   exclusive: true
});

这个exclusive标识符允许你在多个node子进程之间完全独占端口。如果另外一个node进程已经在使用该端口,尝试另外一个可用的端口。如果没有可用的端口,抛出EADDRINUSE异常。

希望这些方法可以帮助您解决EADDRINUSE错误!