Ubuntu 上 Node.js 日志报错 的原因非常多,不能一概而论。下面我按最常见原因 → 排查方法 → 示例给你一个系统性的排查思路。如果你愿意,也可以把具体报错日志贴出来,我可以精准分析。
现象
SyntaxError: Unexpected token ...
或
node: bad option
原因
??、可选链 ?.)解决
node -v
推荐安装 LTS:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
日志示例
Error: listen EADDRINUSE: address already in use :::3000
原因
解决
lsof -i:3000
kill -9 <PID>
或修改端口:
app.listen(4000)
日志示例
EACCES: permission denied
常见场景
/var/log解决
sudo setcap cap_net_bind_service=+ep $(which node)
或不用 root 运行:
sudo chown -R $USER:$USER /your/project
日志示例
Error: Cannot find module 'express'
解决
rm -rf node_modules package-lock.json
npm install
如果是全局模块:
npm list -g --depth=0
日志示例
process.env.XXX is undefined
解决 Ubuntu 下:
export NODE_ENV=production
或创建 .env 文件(配合 dotenv):
npm install dotenv
如果你用 systemd
journalctl -u your-node-service -f
如果用 PM2
pm2 logs
pm2 restart app
日志示例
ENOSPC: System limit for number of file watchers reached
解决
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
node app.js 2>&1 | tee error.log
tail -f /var/log/syslog
ps aux | grep node
请直接贴出以下信息之一:
node / PM2 / systemd / Docker)node -v)lsb_release -a)报错
Error: Cannot find module '/app/server.js'
原因
解决
cd /app
node server.js
或
node /app/server.js
如果你愿意,把报错原文直接贴出来,我可以一步一步帮你定位 ✅