温馨提示×

ubuntu nodejs日志报错怎么解

小樊
42
2026-09-21 18:16:59
栏目: 编程语言

在 Ubuntu 上运行 Node.js 时日志报错,常见于依赖缺失、权限问题、端口占用、Node 版本不兼容等。下面按「快速定位 → 常见错误 → 解决方式」给你一套通用排错思路。


一、先看日志怎么看(很重要)

1. 直接运行看报错

node app.js
# 或
npm start

2. 看 systemd 日志(如果用服务)

journalctl -u your-node-service -n 100 --no-pager

3. PM2 日志

pm2 logs

二、Ubuntu 上 Node.js 常见报错 & 解决办法

✅ 1. EACCES: permission denied

原因:没权限写文件或装包
解决:

sudo chown -R $USER:$USER /your/project

或 npm 用用户目录:

npm config set prefix ~/.npm

✅ 2. 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

✅ 3. Port 3000 is already in use

解决:

sudo lsof -i:3000
kill -9 PID

或改端口:

app.listen(4000)

✅ 4. Cannot find module 'xxx'

原因:依赖没装
解决:

rm -rf node_modules package-lock.json
npm install

✅ 5. node: bad option / 版本不兼容

解决:

node -v
nvm install 18
nvm use 18

✅ 6. systemd 启动失败

报错示例:

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

我可以直接针对你这个错误给精确解决方案。

0 踩