启动node服务时报错:node:events:491 throw er; // Unhandle

启动node服务时遇到以下报错:

node 复制代码
node:events:491
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use 127.0.0.1:4567
    at Server.setupListenHandle [as _listen2] (node:net:1463:16)
    at listenInCluster (node:net:1511:12)
    at GetAddrInfoReqWrap.doListen [as callback] (node:net:1660:7)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:111:8)
Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1490:8)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  code: 'EADDRINUSE',
  errno: -4091,
  syscall: 'listen',
  address: '127.0.0.1',
  port: 4567
}

这个错误提示说明你的 Node 服务在尝试监听 127.0.0.1:4567 时,该端口已经被其他进程占用了。常见原因包括:

复制代码
上一次启动的服务未正常退出,端口仍被占用
系统中有其他程序或实例正在使用该端口
开发时不小心启动了多个服务实例

可以尝试以下几种方法来解决这个问题: 1. 检查端口占用情况

  • 在 Linux/macOS 下,可以运行以下命令查看占用 4567 端口的进程:
shell 复制代码
lsof -i :4567
  • 在 Windows 下,可以使用:
shell 复制代码
netstat -nao | findstr 4567

这样可以找到进程的 PID(进程号, 也就是示例的4567)以及相关信息。

2. 杀掉占用该端口的进程

  • 如果确定该进程不再需要,可以在 Linux/macOS 中使用:
shell 复制代码
kill -9 <PID>
  • 在 Windows 中使用:
shell 复制代码
taskkill /PID <PID> /F

这会强制结束该进程,从而释放端口。

3. 更改服务端口 如果不想杀掉现有进程,也可以修改你的应用配置,换用一个未被占用的端口,例如改为 4568 或其他端口。

4. 完善错误处理 在 Node.js 中可以监听 'error' 事件,避免未捕获的错误导致服务异常退出,并在错误发生时给出更友好的提示。

通过以上步骤,基本上就可以解决"Error: listen EADDRINUSE: address already in use 127.0.0.1:4567"的问题了。如果问题依然存在,请确认是否有其它后台进程或开发工具(比如 VS Code 的调试器)在无意中占用了这个端口。

相关推荐
货拉拉技术4 分钟前
货拉拉开源Hadice:安卓 & 鸿蒙桌面调试工具
前端
苏渡苇5 分钟前
Spring Insight 里如何把 Span 画成瀑布时间线
后端·spring·spring cloud·springboot·监控·apm
Charlie_Byte36 分钟前
Spring AI 2 手把手:把 filesystem MCP Server 跑通(SSE / stdio + 真调工具)
后端
程序猿DD44 分钟前
OctaFuse Gateway 2.11.0:流式请求优化、用户折扣策略与错误契约升级
前端·后端
尾善爱看海1 小时前
《JavaScript 数组操作全攻略:12 类 API + 30 个实战场景 + 20 个避坑指南》
前端·javascript·面试
Bs_MoneyMagnet1 小时前
基于springboot+vue的非遗物质文化遗产系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
计算机魔术师1 小时前
Anthropic 估值冲 4 万亿,但企业客户已经偷偷换了便宜模型
前端
OpsEye1 小时前
为什么你的 Agent 莫名烧钱?聊聊循环调用的兜底方案
javascript·ai编程
王六米。1 小时前
RAG知识库建设 文档解析 切分与索引如何衔接
服务器·前端·网络·企业数字化转型·智钳智能盒子
打工仔折腾 AI1 小时前
Prometheus 告警推钉钉:从单群 Webhook 到跨网络 Alertmanager 实战
人工智能·后端·python·性能优化