Windows下运行Node.js遇EADDRINUSE错误,求排查解决方法
解决Windows下Node.js的EADDRINUSE端口占用问题
你的Node.js服务尝试监听3000端口时触发EADDRINUSE错误,说明该端口已被其他进程占用,任务管理器排查无果的话,试试以下Windows专属的解决步骤:
1. 精准定位占用3000端口的进程
打开命令提示符(CMD)或PowerShell,执行命令:
netstat -ano | findstr :3000
执行后会得到类似输出:
TCP [::]:3000 [::]:0 LISTENING 1234
最后一列的1234就是占用端口的进程ID(PID)。
2. 强制终止占用进程
拿到PID后,执行命令终止进程:
taskkill /F /PID 1234
/F参数用于强制终止进程- 将
1234替换为你实际查到的PID
如果提示“拒绝访问”,右键点击CMD/PowerShell选择以管理员身份运行后重试。
3. 临时更换端口(快速绕过问题)
不想排查进程的话,直接修改代码里的监听端口,比如改成3001:
server.listen(3001);
修改后重新运行代码即可。
4. 给服务添加错误监听(避免程序崩溃)
作为初学者,建议给Server添加错误事件监听,下次遇到类似问题时程序不会直接崩溃,还能给出明确提示:
const http=require('http'); const server=http.createServer((req,res) => { const url=req.url; if(url == '/'){ res.setHeader('Content-Type','text/html'); res.write('<html>'); res.write('<body>Hello</body>'); res.write('</html>'); res.end(); } }); // 添加错误监听逻辑 server.on('error', (err) => { if (err.code === 'EADDRINUSE') { console.log('端口3000已被占用,请更换端口或关闭占用进程'); } else { console.error('服务器启动失败:', err); } }); server.listen(3000);
内容的提问来源于stack exchange,提问作者Srinivasa Raghu
相关产品推荐
相关产品推荐

