当在 Express.js 中开发后端应用时,可能会遇到 “Error: listen EADDRINUSE” 的问题。这个错误通常发生在尝试使用已被占用的端口启动 Express 服务器时。本文将介绍这个错误的原因和如何解决这个问题。
原因
该错误通常发生在尝试使用已被占用的端口启动 Express 服务器时。这种情况通常发生在你启动了另外一个 Express 服务器或者其他应用程序已经在使用该端口。
解决方法
解决这个问题的方法有两种:
- 修改服务器监听端口
可以在启动服务器时指定一个新的端口来替换被占用的端口。例如,将端口从 3000 修改为 3001,可以使用以下代码:
const express = require('express'); const app = express(); const port = 3001; // 修改端口号 app.listen(port, () => { console.log(`Server listening at http://localhost:${port}`); });
- 关闭占用端口的应用程序或服务器
如果你知道哪个应用程序或服务器占用了该端口,可以关闭它以释放该端口。你也可以使用系统工具 (如 Mac 上的 lsof
或者 Windows 上的 netstat
) 帮助你查找哪个应用程序或服务器占用了该端口。
注意
在某些情况下,该错误可能会在退出 Node.js 进程后继续存在。这一般是因为操作系统没有能够立即释放端口。你可以等待一段时间,然后重新启动你的服务器,或者重启你的计算机来彻底解决问题。
结论
本文介绍了如何解决 Express 服务器启动时遇到的 "Error: listen EADDRINUSE" 错误。我们可以修改服务器监听端口或者关闭占用端口的应用程序或服务器来解决这个问题。在解决这个问题时,我们需要了解这个错误的原因和可能发生的后果,这有助于我们更好地了解如何应对这种错误。
示例代码
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----- ---- - ----- ---------------- -- -- - ------------------- --------- -- --------------------------- --- -- ------------ -- ----- ------- - ----- -- ------------------- -- -- - -- ------------------- --------- -- ------------------------------ -- ---
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672d8589eedcc8a97c85362b