Node.js报错EADDRINUSE
:端口被占用的3种解决方式
在Node.js开发中,EADDRINUSE
错误是一个常见的问题,表示尝试监听的端口已被其他进程占用。该错误通常发生在以下场景:
- 重复启动同一个应用实例
- 其他应用占用了相同端口
- 开发服务器未正确关闭
本文结合CSDN技术社区的实战案例,总结解决EADDRINUSE
错误的3种最实用方法,并提供代码和表格示例分析。
一、错误原因分析
错误类型 | 根本原因 | 典型表现 |
---|---|---|
端口被占用 | 其他进程正在使用该端口 | 控制台报错Error: listen EADDRINUSE: address already in use :::3000 |
开发服务器未关闭 | 开发服务器进程未正确退出 | 即使关闭了IDE,Node.js进程仍在后台运行 |
配置错误 | 端口号配置重复或动态生成冲突 | 配置文件中端口号被意外修改为已占用值 |
二、解决方案详解
1. 手动终止占用进程
Windows系统
-
查找占用端口的进程ID:
netstat -ano | findstr :3000
输出示例:
TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 12345
-
终止进程:
taskkill /PID 12345 /F
Linux/macOS系统
-
查找占用端口的进程ID:
lsof -i :3000
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 12345 user 12u IPv6 123456 0t0 TCP *:3000 (LISTEN)
-
终止进程: