在 Debian 上排查 Node.js 日志报错,一般按下面几个步骤来:
如果你是在终端直接运行:
node app.js
报错会直接打印在终端里,重点看:
Error: 开头的行at ... 调用栈(看是哪个文件哪一行)errno / code(如 EADDRINUSE、ENOENT)如果 Node 是用 systemd 启动的(如 npm / pm2 / 自建 service):
# 查看服务状态和最近日志
systemctl status your-node-service
# 实时查看日志
journalctl -u your-node-service -f
# 查看历史报错(含错误)
journalctl -u your-node-service -p err
常见服务名示例:
node.servicemyapp.servicepm2.servicepm2 logs
pm2 logs app-name
pm2 describe app-name
错误日志默认在:
~/.pm2/logs/
很多 Node 项目会写日志文件,常见位置:
/var/log/your-app/
./logs/
./log/
查看示例:
tail -f logs/error.log
grep -i error logs/*.log
Error: listen EADDRINUSE: address already in use
解决:
sudo lsof -i :3000
sudo kill -9 PID
Error: Cannot find module 'xxx'
解决:
npm install
EACCES: permission denied
解决(不要用 root 跑 npm):
sudo chown -R $USER:$USER /path
SyntaxError: Unexpected token
查看版本:
node -v
必要时升级 Node(用 nvm 或 Nodesource)
# 只看 error
journalctl -u node.service | grep -i error
# 看最近 100 行
journalctl -u node.service -n 100
# 看某个时间段的日志
journalctl -u node.service --since "2024-01-01 10:00"
你可以直接把:
cat /etc/os-release)我可以帮你精确分析是哪一类问题。