温馨提示×

如何定位ubuntu nodejs错

小樊
45
2026-09-30 15:51:40
栏目: 编程语言

在 Ubuntu 上定位 Node.js 报错,通常可以按下面几个层次来做:看错误本身 → 看运行环境 → 看日志和堆栈 → 用工具深入。


一、先看错误信息本身

Node.js 报错一般分几类:

  1. 语法错误(SyntaxError)

    • 文件、行号会直接给出
    • 示例:
      SyntaxError: Unexpected token }
      at Object.<anonymous> (/home/user/app.js:10:2)
      
  2. 运行时错误(TypeError / ReferenceError 等)

    • 看 stack trace 中最靠近业务代码的一行
    • 示例:
      TypeError: Cannot read property 'x' of undefined
      at app.get (/home/user/app.js:25:15)
      
  3. 模块找不到(Cannot find module)

    • 常见原因:
      • 没 npm install
      • 装错目录
      • NODE_PATH 不对

二、确认 Ubuntu 上的 Node.js 环境

1. 查看 Node / npm 版本

node -v
npm -v

2. 确认 node 路径

which node
which npm

如果你用了 nvm,可能实际是:

~/.nvm/versions/node/...

3. 常见 Ubuntu 坑

  • 系统自带 node 很老(v10 以下)
  • 用 apt install nodejs 和 npm 版本不匹配
  • 推荐用 nvm 管理版本

三、运行方式决定怎么看错误

1. 直接运行

node app.js

错误会直接打印在终端

2. 后台运行(pm2 / systemd)

pm2

pm2 logs
pm2 show <id>

systemd

journalctl -u your-node-service -f

四、开启详细日志和调试

1. 打印完整错误

process.on('uncaughtException', e => {
  console.error(e);
});

2. 打开 Node 调试

node --trace-warnings app.js
node --stack-trace-limit=100 app.js

3. 使用 DEBUG

DEBUG=* node app.js

五、用工具定位复杂问题

1. 断点调试

node --inspect app.js

然后用 Chrome chrome://inspect

2. 性能 / 内存问题

node --prof app.js
node --inspect-brk app.js

3. 日志库

  • winston
  • pino
  • debug

六、典型 Ubuntu + Node 问题速查

现象 可能原因
command not found: node 没装 / PATH 错
EACCES 权限问题,别用 sudo npm
port in use 端口被占
突然退出 未捕获异常
CPU 100% 死循环 / 正则灾难

如果你愿意,可以把具体报错信息或运行方式贴出来,我可以直接帮你定位是哪一类问题、怎么改。

0 踩