在 Linux 下定位 Node.js 错误,通常可以从日志、错误信息、调试工具、系统资源几个层面入手。下面按“由浅入深”的方式给你一套实用方案。
直接在终端运行:
node app.js
关注:
Error: / TypeError: / ReferenceError:示例:
TypeError: Cannot read property 'x' of undefined
at app.js:23:10
✅ 重点看 最后几行堆栈
如果你用:
pm2 start app.js
查看日志:
pm2 logs
pm2 logs app
如果是 nohup:
tail -f nohup.out
--inspectnode --inspect app.js
然后用 Chrome 打开:
chrome://inspect
适合:
debugger代码里加:
debugger;
再运行:
node inspect app.js
process.on('uncaughtException', (err) => {
console.error('未捕获异常:', err);
});
process.on('unhandledRejection', (reason) => {
console.error('未处理的 Promise:', reason);
});
⚠️ 仅用于记录,不要吞掉错误
npm install winston
或:
npm install pino
好处:
dmesg | grep -i "killed process"
或:
journalctl -xe
top
htop
找到 node 进程:
ps aux | grep node
内存泄漏可用:
node --expose-gc app.js
✅ 最佳实践:
pm2 管理进程winston / pino 记录日志pm2 logs + dmesgtry/catchuncaughtException你可以直接贴:
node -v我可以帮你精准定位是哪一类问题。