在 Ubuntu 上运行 Node.js 时日志报错,常见于依赖缺失、权限问题、端口占用、Node 版本不兼容等。下面按「快速定位 → 常见错误 → 解决方式」给你一套通用排错思路。
node app.js
# 或
npm start
journalctl -u your-node-service -n 100 --no-pager
pm2 logs
EACCES: permission denied原因:没权限写文件或装包
解决:
sudo chown -R $USER:$USER /your/project
或 npm 用用户目录:
npm config set prefix ~/.npm
command not found: node原因:Node 没装或 PATH 不对
解决(推荐 nvm):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 18
Port 3000 is already in use解决:
sudo lsof -i:3000
kill -9 PID
或改端口:
app.listen(4000)
Cannot find module 'xxx'原因:依赖没装
解决:
rm -rf node_modules package-lock.json
npm install
node: bad option / 版本不兼容解决:
node -v
nvm install 18
nvm use 18
报错示例:
code=exited, status=1
检查:
journalctl -u your-service
service 示例(正确写法):
[Service]
WorkingDirectory=/var/www/app
ExecStart=/usr/bin/node /var/www/app/app.js
User=www-data
如果你愿意,可以把 完整报错信息(不是只说“报错了”)贴出来,例如:
Error: listen EADDRINUSE :::3000
或
MODULE_NOT_FOUND
我可以直接针对你这个错误给精确解决方案。