首页主机资讯Ubuntu Nodejs错误怎么排查

Ubuntu Nodejs错误怎么排查

时间2025-11-26 21:00:03发布访客分类主机资讯浏览280
导读:Ubuntu 上 Node.js 错误排查清单 一 快速定位与通用步骤 明确运行方式与环境:是直接运行 node app.js、通过 npm start、还是 PM2/Systemd 托管;确认 Node 与 npm 版本一致(命令:no...

Ubuntu 上 Node.js 错误排查清单

一 快速定位与通用步骤

  • 明确运行方式与环境:是直接运行 node app.js、通过 npm start、还是 PM2/Systemd 托管;确认 Node 与 npm 版本一致(命令:node -v、npm -v)。
  • 先看“哪里报错”:在终端/日志中找到文件名与行号;必要时用 node inspect app.jsnode --inspect-brk app.js 进入调试,配合 VS Code 断点。
  • 依赖与语法:执行 npm install 还原依赖;用 ESLint 或简单 console.log/console.error 打印关键变量与执行流。
  • 运行期问题:优先检查端口占用、权限、路径、网络四类高频问题(见第二部分)。
  • 日志与告警:区分错误 Error警告 Warning;对 Warning 也要处理,避免累积成故障(见第三部分)。

二 常见错误与修复命令

症状 典型错误信息 快速排查 修复建议
端口被占用 Error: listen EADDRINUSE :::3000 lsof -i :3000 或 ss -ltnp kill -9 或改用未占用端口
模块找不到 Error: Cannot find module ‘xxx’ 检查拼写、相对/绝对路径 npm install xxx;确认 node_modules 存在
权限不足 Error: EACCES permission denied 查看目录/文件权限 调整权限或以合适用户运行;避免 1024 以下端口直接用非 root
地址不可用 Error: EADDRNOTAVAIL 核对绑定 IP 服务器对外访问用 0.0.0.0;不要绑定不存在的网卡 IP
文件不存在 Error: ENOENT no such file or directory 检查相对路径与工作目录 使用绝对路径或修正相对路径
连接超时 Error: ETIMEDOUT 网络连通性、目标服务状态 检查目标主机/端口、重试与超时设置
日志写入失败 Error: EACCES open ‘/var/log/node.log’ 查看日志目录权限 改为可写目录或调整权限
PM2 停不掉 pm2 stop 后进程仍在 ps aux grep node 查残留
中文乱码/EIO Error: write EIO 文件编码与终端编码 将源文件保存为 UTF-8 再运行

三 日志与警告分析

  • 查看与实时跟踪
    • 原生:tail -f logs/app.log;服务:journalctl -u your-node-service -f
    • PM2:pm2 logs;筛选警告:pm2 logs your-app --lines 50 | grep WARN
  • 典型 Warning 与对策
    • DeprecationWarning:如 Buffer() 已弃用 → 改用 Buffer.alloc()/Buffer.from();同步升级依赖(npm outdated / npm update)。
    • UnhandledPromiseRejectionWarning:Promise 没有 catch → 给每个 Promise 加 .catch();在入口加全局监听:process.on(‘unhandledRejection’, …)。
    • MaxListenersExceededWarning:监听器泄漏 → 移除重复监听或 emitter.setMaxListeners()。
    • ENOMEM / heap out of memory:内存不足 → 启动时提升上限:node --max-old-space-size=4096 app.js;用 clinic/heapdump 定位泄漏。

四 环境与安装问题

  • 版本与安装方式
    • 使用 apt 安装的版本可能非最新 LTS;需要新版本时可用 NodeSource PPAnvm 管理多版本。
  • nvm 未找到
    • 确认 ~/.bashrc 或 ~/.zshrc 已写入 nvm 初始化脚本并执行 source 重载配置。
  • 安装阶段域名解析失败
    • 如遇 raw.githubusercontent.com 解析失败,可临时在 /etc/hosts 添加对应记录。
  • 安全与合规
    • 关注 Node.js 安全更新,及时升级到包含修复的版本。

五 网络与访问问题

  • 防火墙放行
    • Ubuntu 使用 UFW:sudo ufw allow 3000/tcp(按需替换端口)。
  • 监听地址绑定
    • 仅本机访问:127.0.0.1;对外访问:0.0.0.0(示例:server.listen(3000, ‘0.0.0.0’))。
  • 外部访问不通
    • 同时检查云服务器安全组/防火墙与监听地址是否为 0.0.0.0

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Nodejs错误怎么排查
本文地址: https://pptw.com/jishu/757090.html
ubuntu getconf与其他工具比较 ubuntu getconf输出格式是什么

游客 回复需填写必要信息