如何修复Node.js中“Error: listen EADDRINUSE: address already in use :::5000”错误
解决Node.js中EADDRINUSE端口占用问题
错误原因
你遇到的Error: listen EADDRINUSE: address already in use :::5000错误,核心原因是端口5000已经被其他进程占用,导致你的Express服务无法绑定该端口启动。
解决办法
1. 终止占用端口的进程
根据操作系统选择对应命令:
macOS/Linux:
先查找占用5000端口的进程ID(PID):lsof -i :5000若权限不足,添加
sudo:sudo lsof -i :5000找到输出里的PID,执行命令强制终止:
kill -9 <查到的PID>Windows:
打开命令提示符或PowerShell,查找PID:netstat -ano | findstr :5000强制终止对应进程:
taskkill /F /PID <查到的PID>
2. 修改项目监听端口
如果不想终止现有进程,直接修改项目端口:
打开项目中的index.js(错误提示指向该文件第50行),找到监听端口的代码:
app.listen(5000, () => { console.log('Server running on port 5000'); });
把5000换成其他未被占用的端口(比如5001、3001),保存后重启项目即可。
3. 添加错误监听(避免进程崩溃)
为防止后续类似未处理错误导致进程直接崩溃,可以给服务添加错误监听:
const server = app.listen(5000, () => { console.log('Server running on port 5000'); }); server.on('error', (err) => { if (err.code === 'EADDRINUSE') { console.log('端口5000已被占用,请更换端口或终止占用进程'); } else { console.error('服务启动出错:', err); } });
内容的提问来源于stack exchange,提问作者Parth Sojitra
相关产品推荐
相关产品推荐

