在 Ubuntu 上运行 Node.js 时遇到日志报错,排查思路其实比较通用。下面我按常见错误类型 + 排查步骤 + 解决思路给你一个实用指南。
Node.js 日志通常来自:
pm2 logs
journalctl -u your-node-service
docker logs <container_id>
Cannot find module 'xxx'原因:依赖没装或装错环境
解决:
npm install
# 或
yarn install
确认 Node 版本一致:
node -v
npm -v
EADDRINUSE: address already in use原因:端口被占用
解决:
lsof -i:3000
kill -9 <pid>
或修改端口:
app.listen(4000)
Permission denied原因:Ubuntu 权限不足(尤其是 80/443 端口)
解决:
sudo setcap cap_net_bind_service=+ep $(which node)
或:
sudo node app.js
SyntaxError / Unexpected token原因:
解决:
node -v
升级 Node(推荐 nvm):
nvm install 18
nvm use 18
ENOSPC: no space left on device原因:磁盘满了(常见于日志)
df -h
清理:
npm cache clean --force
rm -rf node_modules
ECONNREFUSED原因:数据库 / Redis / 接口没启动
解决:
systemctl status mongodsystemctl status mysql# 1. 看完整报错
journalctl -u your-service -n 100
# 2. 本地直接跑
node app.js
# 3. 看 Node 版本
node -v
# 4. 重装依赖
rm -rf node_modules package-lock.json
npm install
# 5. 看系统资源
top
df -h
你可以把 报错日志完整贴出来(不要只贴一行),我可以直接告诉你:
只要贴日志,我来帮你“对症下药”。