在 Debian 上定位 Node.js 错误,可以按“现象 → 日志 → 运行环境 → 代码 → 系统层”的顺序逐步排查。下面是一套实用方法。
先排除最基础的问题:
node -v
npm -v
which node
如果是通过 apt 安装的:
dpkg -l | grep nodejs
常见坑:
node 是 v10/v12(太旧)nvm 和 apt 的 node,版本冲突node app.js
重点看:
--stack-trace-limitnode --stack-trace-limit=100 app.js
如果你用 systemctl 启动 Node:
journalctl -u your-node-service -n 100 --no-pager
实时查看:
journalctl -u your-node-service -f
/var/log/syslog
/var/log/messages
在代码里加:
process.on('uncaughtException', (err) => {
console.error('Uncaught Exception:', err);
});
process.on('unhandledRejection', (reason) => {
console.error('Unhandled Rejection:', reason);
});
node --inspect app.js
然后用 Chrome:
chrome://inspect
ndb(推荐)npx ndb app.js
EACCES: permission denied
解决:
sudo chown -R $USER:$USER /path
不要随便用 sudo npm -g
node-gyp rebuild
需要:
sudo apt install build-essential python3
dmesg | grep -i oom
journalctl | grep -i kill
node --max-old-space-size=2048 app.js
pm2pm2 logs
pm2 monit
dotenv 管理配置✅ node 版本是否匹配
✅ 是否 systemd 启动
✅ journalctl 有无报错
✅ 是否权限问题
✅ 是否依赖未安装
✅ 是否内存不足
如果你愿意,可以把:
发出来,我可以直接帮你定位。