在 CentOS 上调试 Node.js 错误,可以按下面几个层次来做,从快速定位到深入分析。
node -v
npm -v
⚠️ 老项目建议用 LTS 版本,避免兼容问题。
journalctl -xe
或
dmesg | tail
用于排查 OOM、段错误、系统级崩溃。
node app.js
如果崩溃,先看 完整错误栈。
--trace-warningsnode --trace-warnings app.js
适合调试 Promise 警告、弃用 API。
node inspect app.js
常用命令:
c # 继续执行
n # 下一行
s # 进入函数
repl # 查看变量
node --inspect app.js
或监听断点:
node --inspect-brk app.js
然后在 Chrome 打开:
chrome://inspect
✅ 优点:
pm2 logs
或
journalctl -u your-service-name
npm install -g pm2
pm2 start app.js
pm2 logs
pm2 restart app
查看错误:
pm2 logs --err
process.on('uncaughtException', (err) => {
console.error('未捕获异常:', err);
});
process.on('unhandledRejection', (reason) => {
console.error('未处理的 Promise:', reason);
});
node --max-old-space-size=4096 app.js
node --inspect app.js
用 Chrome DevTools → Memory
ps aux | grep node
netstat -tunlp | grep 3000
ls -l
CentOS 常见坑:权限不足导致 EACCES 错误
| 错误 | 原因 | 解决 |
|---|---|---|
| EADDRINUSE | 端口被占用 | kill -9 PID |
| EACCES | 权限不足 | chmod / sudo |
| MODULE_NOT_FOUND | 模块缺失 | npm install |
| 段错误 | 原生模块 | 重装 / 换 Node 版本 |
| 内存溢出 | 内存不足 | 增大 --max-old-space-size |
node --inspect-brk如果你愿意,可以把 具体报错信息 或 场景(启动失败 / 请求报错 / 崩溃) 发出来,我可以直接帮你定位 ✅