温馨提示×

Ubuntu Node.js日志中常见错误及解决

小樊
48
2025-08-27 03:59:10
栏目: 编程语言

以下是Ubuntu Node.js日志中常见错误及解决方法:

  • 端口占用(EADDRINUSE)

    • 原因:端口被其他进程占用。
    • 解决
      1. 查找占用端口的进程:lsof -i :端口号
      2. 终止占用进程:kill -9 进程ID
      3. 更改应用端口或检查代码是否重复启动服务。
  • 未处理的Promise拒绝(UnhandledPromiseRejectionWarning)

    • 原因:Promise未正确捕获错误。
    • 解决
      1. 为Promise添加.catch()或使用try-catch
      2. 全局监听未处理Promise:process.on('unhandledRejection', (reason) => console.error(reason))
  • 内存不足(ENOMEM)

    • 原因:代码存在内存泄漏或默认内存限制不足。
    • 解决
      1. 增加内存限制:node --max-old-space-size=4096 应用.js
      2. 使用工具(如clinic)分析内存泄漏。
  • 依赖包过时(DeprecationWarning)

    • 原因:使用了已废弃的API或依赖包版本过低。
    • 解决
      1. 升级Node.js和npm:sudo n latest
      2. 检查并更新依赖包:npm outdatednpm update
  • 网络连接错误(ECONNREFUSED)

    • 原因:服务未启动、端口错误或防火墙拦截。
    • 解决
      1. 确认服务已启动并监听正确端口:netstat -tulnp | grep 端口
      2. 检查防火墙规则:sudo ufw status,开放必要端口。
      3. 确保客户端连接地址正确(如使用0.0.0.0而非127.0.0.1)。
  • 流操作异常

    • 原因:未为流添加错误处理事件。
    • 解决:为流对象绑定error事件监听器,捕获异常。

通用排查工具

  • 查看实时日志:tail -f logs/app.logjournalctl -u 服务名
  • 使用调试工具:node inspect 应用.js或VS Code调试模式。

0