在 Ubuntu 上定位 Node.js 错误,通常可以按下面几个层次来做:
node app.js
或
npm start
观察终端输出的:
例如:
Error: Cannot find module 'express'
at Function.Module._resolveFilename
如果是服务形式运行:
cat /var/log/your-app.log
如果你用 systemd 管理 Node 服务:
journalctl -u your-node-service -f
查看最近错误:
journalctl -u your-node-service --since "10 min ago"
node -v
npm -v
which node
which npm
⚠️ 常见问题:
npm install
npm ls
npm audit
npm outdated
node --inspect app.js
然后用 Chrome:
chrome://inspect
console.log(process.env)
console.error(err)
EACCES: permission denied
解决:
sudo chown -R $USER:$USER /project/path
或不用 sudo 装 npm 包
EADDRINUSE :::3000
查看占用:
sudo lsof -i:3000
或
netstat -tulpn | grep 3000
Cannot find module 'xxx'
解决:
rm -rf node_modules package-lock.json
npm install
pm2 logs
pm2 monit
process.on('uncaughtException', e => {
console.error(e)
})
如果你愿意,可以把具体报错信息贴出来,我可以直接帮你定位是 Ubuntu 环境、Node 版本还是代码问题。