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

Nodemon 2.0.12保存文件时抛出UnhandledPromiseRejectionWarning如何解决

问题的可能原因

  • 核心原因是Windows环境下nodemon重启服务时,旧的Node进程未被正常销毁,仍然占用3000端口,新启动的Express服务尝试监听已被占用的端口时抛出异常,且代码中没有对app.listen的错误做捕获处理,因此触发未处理的Promise拒绝警告。
  • package.json的dev脚本存在笔误:配置的启动命令为nodemon app.j,缺失JS后缀的s,正确写法应为nodemon app.js,如果通过npm run dev启动项目,该错误也会导致启动失败。
  • nodemon 2.0.12版本在Windows系统下存在已知的文件监听与进程重启相关的bug,也可能触发该异常。

对应解决方法

  • 为app.listen添加错误捕获逻辑,避免未处理的Promise异常:
app.listen(PORT, function() {
  console.log('Server started on port 3000')
}).on('error', (err) => {
  if (err.code === 'EADDRINUSE') {
    console.log(`端口${PORT}已被占用,尝试关闭占用进程后重试`)
  }
})
  • 修正package.json中的dev脚本笔误。
  • 可将nodemon升级到最新稳定版,或降级到2.0.7等兼容性更好的旧版本。
  • 若临时遇到端口占用问题,可手动执行命令杀死占用3000端口的进程:
    • 打开cmd执行netstat -ano | findstr :3000 查询占用端口的PID
    • 执行taskkill /PID 对应PID /F 强制结束对应进程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:51:03