在 Debian 上排查 Node.js 日志报错,可以按下面几个层次来看,从“在哪里看日志”到“怎么读懂报错”。
不同运行方式,日志位置不一样:
node app.js
✅ 报错会直接打印在终端
pm2 logs
pm2 logs appname
查看某个进程:
pm2 show appname
journalctl -u yourapp.service -f
查看全部:
journalctl -xe
docker logs container_name
docker logs -f container_name
SyntaxError: Unexpected token )
✅ 原因:代码写错
✅ 解决:看文件名 + 行号
ReferenceError: xxx is not defined
✅ 变量名拼错或作用域问题
TypeError: Cannot read property 'x' of undefined
✅ 对象为 undefined
✅ 常见于:
Error: Cannot find module 'express'
✅ 解决:
npm install
或:
rm -rf node_modules package-lock.json
npm install
Error: listen EADDRINUSE :::3000
✅ 查看占用:
lsof -i:3000
或:
netstat -tunlp | grep 3000
EACCES: permission denied
✅ Debian 常见:
node --trace-warnings app.js
node --stack-trace-limit=100 app.js
DEBUG=* node app.js
1. 看日志(journalctl / pm2 / docker)
2. 找 Error / Exception 关键字
3. 看 at xxx.js:12:3(文件 + 行号)
4. 本地复现
5. 检查依赖 / 配置 / 环境
journalctl -u nodeapp -n 50
配置文件:
[Service]
ExecStart=/usr/bin/node /var/www/app.js
Environment=NODE_ENV=production
如果你愿意,可以:
我可以帮你 逐行分析并给出解决方案。