📅  最后修改于: 2023-12-03 15:14:54.862000             🧑  作者: Mango
这是一个常见的错误,通常发生在开发人员试图启动应用程序时。在这种情况下,该错误意味着端口号(本例中的3008)已在使用中。换句话说,另一个程序或实例已经在使用该端口号。
这可能发生在以下情况下:
要解决此问题,可以尝试以下解决方法:
可以使用以下命令检查具有该端口号的进程:
lsof -i tcp:3008
然后杀死该进程:
kill PID
如果另一个进程(例如 Web 服务器)正在使用该端口号,则可以更改应用程序的端口号。要更改端口号,请修改应用程序代码中的端口号,然后重新启动应用程序。
当你使用Node.js的http模块来建立一个HTTP服务时,你可以在创建这个监听的端口的时候,给参数添加一个exclusive(独占)标识符,如下:
const server = require('http').createServer(app);
server.listen({
port: 3008,
exclusive: true
});
这个exclusive标识符允许你在多个node子进程之间完全独占端口。如果另外一个node进程已经在使用该端口,尝试另外一个可用的端口。如果没有可用的端口,抛出EADDRINUSE异常。
希望这些方法可以帮助您解决EADDRINUSE错误!