You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code中Node.js需多次运行才启动,提示EADDRINUSE错误

解决Node.js监听端口EADDRINUSE但端口未被占用的问题

1. 清理VS Code残留的Node进程

每次点击运行时,VS Code可能会启动新的Node进程,但之前的进程因未处理退出信号,仍在后台悄悄占用端口。

  • 手动终止:在VS Code终端按Ctrl+C停止当前进程;打开「运行和调试」面板,检查并关闭所有残留的运行会话。
  • 代码层面优化:给服务器添加退出信号监听,确保进程能彻底关闭:
    const http = require('http');
    const server = http.createServer((req, res) => {
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.end(new Date().toString());
    }).listen(5500, () => {
      console.log('服务器已在5500端口启动');
    });
    
    // 监听终端中断信号,关闭服务器后退出进程
    process.on('SIGINT', () => {
      server.close(() => {
        console.log('服务器已关闭');
        process.exit(0);
      });
    });
    

2. 处理端口TIME_WAIT状态

即使进程已终止,系统可能因TCP连接的TIME_WAIT机制暂时保留端口,导致看起来端口空闲但无法立即重新绑定。

  • Windows:
    1. 打开命令提示符,执行netstat -ano | findstr :5500找到占用端口的PID。
    2. 执行taskkill /F /PID <找到的PID>强制终止对应进程。
  • macOS/Linux:
    1. 在终端执行lsof -i :5500获取进程PID。
    2. 执行kill -9 <找到的PID>彻底终止进程。

3. 检查VS Code运行/调试配置

若使用调试模式或自动重启工具(如nodemon),可能导致重复启动进程:

  • 查看.vscode/launch.json,确保没有重复的启动配置项。
  • 若用nodemon,确认它能正确检测文件变化并替换进程,而非启动多个实例。

内容的提问来源于stack exchange,提问作者protato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:04:56