全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-15 7 分钟 ✍️ juanwangdev

使用 Chrome DevTools 调试 Node.js

Chrome DevTools 提供 GUI 调试体验,比命令行调试器更直观高效。

启动调试模式

启动 inspect 服务

Bash
# 启动调试服务器
node --inspect app.js

# 端口: 9229 (默认)
# 输出: Debugger listening on ws://127.0.0.1:9229/...

# 启动时立即暂停
node --inspect-brk app.js

# 指定端口和主机
node --inspect=127.0.0.1:9229 app.js

连接 DevTools

方式一:Chrome DevTools

  1. 启动 Node.js 调试模式
  2. 打开 Chrome 浏览器
  3. 访问 chrome://inspect
  4. 点击 "Configure" 确保包含 localhost:9229
  5. 在 Remote Target 中找到 Node.js 进程并点击 inspect

方式二:自动打开

Bash
# macOS
open -a "Google Chrome" http://localhost:9229

# 或访问
# chrome-devtools://devtools/bundled/inspector.html?ws=...

调试功能

断点设置

JavaScript
// 代码中设置断点
function processData(data) {
  debugger;  // 程序在此暂停
  return data.map(item => item.value);
}

// 或在 DevTools Sources 面板点击行号设置

断点类型

类型说明快捷操作
普通断点代码执行到此暂停点击行号
条件断点满足条件才暂停右键行号 → Add conditional breakpoint
日志点输出日志不暂停右键行号 → Add logpoint

调试控制

按钮/快捷键功能
F8 / Ctrl+\暂停/继续
F10 / Ctrl+'单步跳过
F11 / Ctrl+;单步进入
Shift+F11单步跳出

变量查看

Scope 面板

JavaScript
function example() {
  const local = '局部变量';
  const obj = { name: 'test' };

  debugger; // 在 Scope 面板查看所有变量
}

Watch 表达式

JavaScript
// 在 Watch 面板添加表达式
data.length
obj.name
JSON.stringify(response)

调用栈追踪

Call Stack 面板

JavaScript
function level3() {
  debugger; // 查看调用栈
}

function level2() {
  level3();
}

function level1() {
  level2();
}

level1();

// Call Stack 显示:
// level3
// level2
// level1
// (anonymous)

Console 面板

调试时执行代码

JavaScript
// 在断点暂停时
// Console 面板可以执行任意代码

// 查看变量
local

// 执行表达式
Object.keys(obj)

// 修改变量
local = 'new value'

内存分析

Heap Snapshot

JavaScript
// 1. 打开 Memory 面板
// 2. 选择 Heap snapshot
// 3. 点击 Take snapshot
// 4. 分析内存占用

CPU 性能分析

Profiler 面板

JavaScript
// 1. 打开 Profiler 面板
// 2. 点击 Start
// 3. 操作应用
// 4. 点击 Stop
// 5. 分析函数执行时间

注意事项

  • --inspect-brk 适合调试启动阶段问题
  • 断点修改后可能需要重启进程
  • 生产环境谨慎使用,性能有损耗
  • 使用 .vscode/launch.json 可集成 VS Code

要点总结

  • node --inspect 启动调试服务器
  • 访问 chrome://inspect 连接 DevTools
  • Sources 面板设置断点和单步调试
  • Scope 查看变量,Watch 监视表达式
  • Call Stack 追踪函数调用链

📝 发现内容有误?点击此处直接编辑

← 上一篇 Node.js Nodemon 自动重启
下一篇 → Node.js 单元测试框架(Mocha/Jest)
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库