Node.js 中遇到 “Error: listen EADDRINUSE” 的解决方案

在使用 Node.js 开发时,经常会遇到 “Error: listen EADDRINUSE” 错误,这个错误一般是由于端口被占用导致的。本文将介绍这个错误的解决方案,并给出详细的示例代码,以帮助读者更好地理解和解决这个问题。

错误信息

首先,我们来了解一下这个错误的具体信息。当我们运行 Node.js 代码时,如果端口被占用,会出现如下错误信息:

其中,最重要的信息是:

  • 错误代码:EADDRINUSE
  • 错误信息:address already in use 127.0.0.1:3000
  • 错误位置:at Server.setupListenHandle [as _listen2] (net.js:1318:16)

根据这些信息,我们可以知道,这个错误是由于端口 (3000) 已经被占用导致的。

解决方案

针对这个问题,有以下几种解决方案。

方案一:修改端口号

最简单的解决方案是修改端口号,将原来的端口号改成其他未被占用的端口号。

运行上述代码,可以看到控制台输出了服务器的地址和端口号。

方案二:杀死占用端口的进程

如果不想修改端口号,可以查找并杀死占用该端口的进程。在 Linux 或 macOS 系统下,可以使用以下命令:

其中,lsof 命令可以查找占用 3000 端口的进程,kill 命令可以杀死该进程。Windows 系统类似,可以使用 netstat 命令查找占用端口的进程 id,并使用 Taskkill 命令杀死该进程。

方案三:使用 express 或 koa.js 等框架

使用 express 或 koa.js 等 Node.js 框架可以避免这个错误,这是因为这些框架可以处理多个请求,并自动管理端口的使用。

运行上述代码,可以看到控制台输出了服务器的地址和端口号。

总结

总之,针对 “Error: listen EADDRINUSE” 错误,我们可以通过修改端口号、杀死占用端口的进程或使用 Node.js 框架来解决。同时,在使用 Node.js 开发时,应该注意避免出现该错误,以确保代码的正常运行。

示例代码:https://gist.github.com/ArmandXiao/f0c0897ef2b1ee534d7e94f3f36769e5

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6533619f7d4982a6eb6e82e5


纠错
反馈