温馨提示×

如何定位ubuntu nodejs错误

小樊
41
2026-09-03 11:00:59
栏目: 编程语言

在 Ubuntu 上定位 Node.js 错误,通常可以按下面几个层次来做:


一、先看错误本身(最直接)

1. 命令行直接运行

node app.js

npm start

观察终端输出的:

  • 错误类型(TypeError / ReferenceError / SyntaxError)
  • 出错文件与行号
  • stack trace(调用栈)

例如:

Error: Cannot find module 'express'
    at Function.Module._resolveFilename

二、查看日志

1. Node 应用自身日志

如果是服务形式运行:

cat /var/log/your-app.log

2. systemd 服务日志(常用)

如果你用 systemd 管理 Node 服务:

journalctl -u your-node-service -f

查看最近错误:

journalctl -u your-node-service --since "10 min ago"

三、确认 Node / npm 环境

1. 查看版本

node -v
npm -v

2. 查看 Node 路径

which node
which npm

⚠️ 常见问题:

  • 多个 Node 版本(nvm / apt / 源码)
  • 权限问题(用 sudo 安装了,普通用户跑)

四、依赖问题定位

1. 检查依赖是否完整

npm install
npm ls

2. 查看缺失或冲突模块

npm audit
npm outdated

五、运行时调试

1. 开启调试模式

node --inspect app.js

然后用 Chrome:

chrome://inspect

2. 打印调试信息

console.log(process.env)
console.error(err)

六、常见 Ubuntu + Node 错误场景

✅ 权限错误

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
pm2 logs
pm2 monit
  • 使用 try/catch + 日志库(winston / pino)
  • 全局错误捕获:
process.on('uncaughtException', e => {
  console.error(e)
})

如果你愿意,可以把具体报错信息贴出来,我可以直接帮你定位是 Ubuntu 环境、Node 版本还是代码问题。

0