📌  相关文章
📜  错误:监听 EADDRINUSE:地址已在使用 :::3001 (1)

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

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

当你在启动一个应用程序时,有时候可能会遇到上述的错误:监听 EADDRINUSE:地址已在使用 :::3001(其中的端口号可能是其它的数字)。这个错误的原因是因为该端口号已经被其它进程所占用,所以当前程序无法启动监听器。

造成错误的原因
  1. 该端口号可能已被你电脑上的其它程序使用;
  2. 你上一个程序没有正确关闭监听器,导致该端口号仍被占用;
  3. 该端口号已被占用的进程没有正确释放端口,而是继续占用。
如何解决错误
  1. 找到已经占用该端口的进程,并将其关闭。可以通过命令行执行 lsof -i :3001 来查找占用该端口的进程,并运行 kill <PID> 来停止进程(其中 <PID> 是占用端口的进程 ID);
  2. 在代码中更改监听的端口号为未被占用的端口号,例如: app.listen(3002)
  3. 等待占用端口的进程自动释放该端口。你可以等待一段时间后再次尝试启动该程序,看看能否成功。
如何避免该错误出现
  1. 在程序关闭时及时释放监听端口;
  2. 尽可能使用未被占用的端口号;
  3. 在开发时尽量使用一个统一配置的端口。

注意:在实际项目中,千万不要使用固定的端口号,在使用时应该设置为配置项避免出现固定端口号被占用的问题,也方便在项目上线时可以按照需要设定端口号。

结论

出现监听 EADDRINUSE 错误时,说明所监听的端口号已经被其它进程所占用,需要找出占用该端口的原因并关闭它。预防起见,尽量使用未被占用的端口号,并在程序关闭时及时释放监听端口。这些措施可以避免监听 EADDRINUSE 错误的出现。