问题描述
在使用 Express.js 开发 Web 应用程序时,有时会遇到以下错误:
-- -------------------- ---- ------- ------ ------ ----------- ------- ------- -- --- -- ------------------------ --- --------- ---------------- -- --------------- ---------------- -- -------- --------------- -- ------------------------- --------------------------------------- ------- ------- ----- -- ------ -------- --- -- ----------- --------------- -- ------------------------- --------------------------------------- - ----- ------------- ------ ------------- -------- --------- -------- ----- ----- ---- -
这个错误的意思是端口已经被占用了,无法再次监听。可能是因为之前的进程没有正常关闭,或者是其他程序正在使用该端口。
解决方案
1. 找到占用端口的进程并杀掉
在终端中输入以下命令可以查看哪个进程占用了该端口:
sudo lsof -i :3000
其中 3000
是端口号,可以替换成你的端口号。
然后会输出类似下面的信息:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 12345 yourname 20u IPv6 1234567 0t0 TCP *:3000 (LISTEN)
其中 12345
是占用该端口的进程的 PID。使用以下命令可以杀掉该进程:
kill -9 12345
然后再次启动你的 Express.js 应用程序即可。
2. 更改监听端口
如果你无法杀掉占用该端口的进程,或者不想杀掉该进程,可以尝试更改你的 Express.js 应用程序监听的端口。例如,将端口号从 3000
更改为 3001
:
const express = require('express') const app = express() app.listen(3001, () => { console.log('Server is running on port 3001') })
然后再次启动你的应用程序即可。
总结
以上是解决 Express.js 中的错误:Error: listen EADDRINUSE: address already in use 的两种方法。如果你遇到了这个问题,可以尝试以上方法来解决。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c879e7add4f0e0ff24a29f