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

Node.js 调试应用

掌握调试技巧,快速定位和解决问题。

console 调试

最基本的调试方式:

JavaScript
// 输出信息
console.log('普通日志');
console.info('信息日志');

// 输出警告
console.warn('警告信息');

// 输出错误
console.error('错误信息');

// 输出对象
const obj = { name: 'Tom', age: 25 };
console.log(obj);
console.dir(obj); // 更清晰的格式

// 输出表格
console.table([{ name: 'Tom' }, { name: 'Jerry' }]);

// 计时
console.time('操作');
doSomething();
console.timeEnd('操作'); // 输出耗时

// 断言
console.assert(1 === 2, '断言失败'); // 输出错误

// 堆栈追踪
console.trace('追踪点');

Node Inspector 调试

Bash
# 启用调试模式
node inspect index.js

# 或使用 --inspect
node --inspect index.js
node --inspect-brk index.js  # 启动时暂停

# 输出调试地址
# Debugger listening on ws://127.0.0.1:9229/...

打开 Chrome DevTools:

  1. 访问 chrome://inspect
  2. 点击 "Open dedicated DevTools for Node"
  3. 在 Sources 面板调试

VS Code 调试

创建调试配置

JSON
// .vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "启动程序",
      "program": "${workspaceFolder}/index.js"
    },
    {
      "type": "node",
      "request": "attach",
      "name": "附加到进程",
      "port": 9229
    }
  ]
}

调试操作

JavaScript
// 设置断点:点击行号左侧

// 调试快捷键
F5      // 开始调试
F9      // 切换断点
F10     // 单步跳过
F11     // 单步跳入
Shift+F11 // 单步跳出
Ctrl+Shift+F5 // 重启调试
Shift+F5 // 停止调试

条件断点

JavaScript
// 右击行号 → 添加条件断点
// 条件表达式:i === 5

// 命中次数:只有第 5 次才暂停

debugger 语句

JavaScript
function processData(data) {
  debugger; // 代码在此暂停
  const result = transform(data);
  debugger; // 检查结果
  return result;
}

// 运行调试模式
node --inspect index.js

watch 监视变量

在 VS Code 调试面板:

JavaScript
// 添加监视表达式
// 点击 Watch 面板的 + 按钮
// 输入变量名或表达式

// 示例监视
result
data.length
obj.name

调试面板功能

面板功能
Variables查看当前变量
Watch监视表达式
Call Stack调用堆栈
Breakpoints断点列表
Debug Console执行调试命令

远程调试

Bash
# 指定调试端口和地址
node --inspect=0.0.0.0:9229 index.js

# 允许远程连接(需安全环境)
node --inspect-brk=0.0.0.0:9229 index.js

使用 ndb 调试器

Bash
# 安装 ndb
npm install -g ndb

# 使用 ndb 启动
ndb node index.js

# 自动打开 DevTools 界面

调试技巧

分步调试复杂逻辑

JavaScript
function complexCalculation(input) {
  const step1 = parse(input);
  console.log('step1:', step1);  // 检查每步结果

  const step2 = transform(step1);
  console.log('step2:', step2);

  const step3 = finalize(step2);
  console.log('step3:', step3);

  return step3;
}

异步代码调试

JavaScript
async function fetchData() {
  try {
    const data = await fetch(url);
    debugger;  // 检查 data

    const parsed = await data.json();
    debugger;  // 检查 parsed

    return parsed;
  } catch (err) {
    console.error('错误:', err);
    debugger;  // 错误时暂停
  }
}

内存调试

JavaScript
// 查看内存使用
console.log(process.memoryUsage());

// 使用 heapdump 分析内存泄漏
// npm install heapdump
const heapdump = require('heapdump');
heapdump.writeSnapshot('dump.heapsnapshot');

常见调试场景

场景方法
值异常console.log 或断点
异步错误try-catch + debugger
性能问题console.time/timeEnd
内存泄漏process.memoryUsage
逻辑错误单步调试

要点总结

  • console.log/time/trace 是基础调试工具
  • node --inspect 启用调试模式
  • VS Code 提供图形化调试界面
  • debugger 语句在代码中设置暂停点
  • 使用 Watch 监视变量变化
  • 分步调试复杂逻辑,逐步检查结果

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

← 上一篇 Node.js 创建第一个应用
下一篇 → Node.js CommonJS 模块规范
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

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

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