温馨提示×

Nodejs在Ubuntu如何调试

小樊
49
2026-08-21 19:50:12
栏目: 编程语言

在 Ubuntu 上调试 Node.js 程序,常见且实用的方式主要有以下几种,从简单到专业依次介绍,你可以按场景选择。


一、最基础:使用 console.log(不推荐长期使用)

适合快速定位问题。

console.log('value:', value);
console.log('type:', typeof value);

✅ 优点:简单
❌ 缺点:效率低、不可交互


二、使用 Node.js 内置调试器(命令行)

Node.js 自带调试功能,无需安装额外工具。

1️⃣ 启动调试模式

node inspect app.js

或(旧版本)

node --inspect app.js

推荐方式(支持断点):

node --inspect-brk app.js

2️⃣ 在浏览器中调试

  1. 启动后终端会显示:
    Debugger listening on ws://127.0.0.1:9229/...
    
  2. 打开 Chrome 浏览器
  3. 访问:
    chrome://inspect
    
  4. 点击 Inspect

✅ 优点:图形化断点、变量查看
✅ 适合大多数调试场景


三、使用 VS Code 调试(强烈推荐 ✅)

这是最常用、最方便的方式。

1️⃣ 打开项目

code your-project

2️⃣ 创建调试配置

  1. 打开 Run and Debug
  2. 点击 create a launch.json
  3. 选择 Node.js

生成示例:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/app.js"
    }
  ]
}

3️⃣ 设置断点并启动

  • 点击代码行号打断点
  • F5 启动调试

✅ 支持:

  • 断点
  • 单步执行
  • 变量监视
  • 调用栈

四、调试已运行的 Node.js 进程

适合线上或后台服务。

1️⃣ 启动时开启调试端口

node --inspect=9229 app.js

2️⃣ 使用 Chrome 连接

访问:

chrome://inspect

配置 localhost:9229


五、调试 npm scripts

例如 package.json

{
  "scripts": {
    "start": "node app.js"
  }
}

调试方式:

node --inspect-brk node_modules/.bin/nodemon app.js

或在 VS Code 中:

{
  "type": "node",
  "request": "launch",
  "name": "Debug npm start",
  "runtimeExecutable": "npm",
  "runtimeArgs": ["run", "start"],
  "skipFiles": ["<node_internals>/**"]
}

六、调试 Express / Koa 等 Web 服务

与普通 Node.js 调试完全一致,只需:

node --inspect app.js

在浏览器访问接口即可命中断点。


七、常用调试技巧

✅ 条件断点

右键断点 → 设置条件:

user.id === 1

✅ 调试异步代码

  • 使用 async/await
  • 在 Promise 内部打断点

✅ 查看完整调用栈

VS Code 左侧 Call Stack


八、常见问题

❓ 端口被占用

kill -9 $(lsof -t -i:9229)

❓ 断点不生效

  • 使用 --inspect-brk
  • 确保源码和运行的文件一致

推荐方案总结

场景 推荐方式
快速查看 console.log
本地开发 VS Code 调试 ✅
线上问题 –inspect + Chrome
脚本调试 launch.json

如果你愿意,可以告诉我:

  • 你用的是 Express / NestJS / 原生 Node
  • 是否在 Docker / WSL / 服务器 上运行

我可以给你更精确的调试配置

0