微信登录

调试工具 - 内置调试器 - 使用 Node.js 内置调试器

调试工具 - 内置调试器 - 使用 Node.js 内置调试器

在 Node.js 开发过程中,调试是不可或缺的环节。当代码出现问题时,高效的调试工具能帮助我们快速定位并解决问题。Node.js 提供了内置调试器,它可以帮助开发者逐行执行代码、查看变量的值、设置断点等。本文将详细介绍如何使用 Node.js 内置调试器。

1. 启动调试会话

要使用 Node.js 内置调试器,我们可以在启动 Node.js 应用时添加 --inspect--inspect-brk 标志。

  • --inspect:启动 Node.js 应用并允许调试器连接。
  • --inspect-brk:启动 Node.js 应用,并在代码的第一行暂停执行,等待调试器连接。

示例代码

创建一个简单的 Node.js 文件 debugExample.js

  1. function add(a, b) {
  2. return a + b;
  3. }
  4. const result = add(3, 5);
  5. console.log(result);

使用 --inspect 启动调试

在终端中运行以下命令:

  1. node --inspect debugExample.js

终端会输出类似以下信息:

  1. Debugger listening on ws://127.0.0.1:9229/xxxxxx
  2. For help, see: https://nodejs.org/en/docs/inspector

这表示 Node.js 应用已启动并允许调试器通过 ws://127.0.0.1:9229/xxxxxx 连接。

使用 --inspect-brk 启动调试

  1. node --inspect-brk debugExample.js

应用会在代码的第一行暂停执行,等待调试器连接。

2. 连接调试器

有多种方式可以连接到 Node.js 内置调试器,这里介绍两种常用的方法:Chrome DevTools 和 Node.js 命令行调试器。

使用 Chrome DevTools 调试

  1. 打开 Chrome 浏览器,在地址栏输入 chrome://inspect
  2. Remote Target 部分,点击 Configure 按钮,确保 localhost:9229 已添加到目标列表中。
  3. 找到正在调试的 Node.js 应用,点击 inspect 链接。
  4. 此时会打开一个新的 Chrome DevTools 窗口,你可以在其中进行调试操作,如设置断点、查看变量值等。

使用 Node.js 命令行调试器

在终端中运行以下命令:

  1. node inspect debugExample.js

进入调试模式后,你会看到类似以下信息:

  1. < Debugger listening on ws://127.0.0.1:9229/xxxxxx
  2. < For help, see: https://nodejs.org/en/docs/inspector
  3. < Debugger attached.
  4. Break on start in debugExample.js:1
  5. > 1 function add(a, b) {
  6. 2 return a + b;
  7. 3 }

这表示代码已在第一行暂停执行。

3. 调试命令

在 Node.js 命令行调试器中,有许多有用的调试命令。以下是一些常用命令的介绍:

命令 描述
contc 继续执行代码,直到下一个断点
nextn 执行下一行代码
steps 进入函数内部
outo 从当前函数跳出
pause 暂停正在执行的代码
list(n) 显示当前行前后 n 行的代码
breakpoint('path/to/file.js', lineNumber)bp 在指定文件的指定行设置断点
clearBreakpoint('path/to/file.js', lineNumber)clbp 清除指定文件的指定行的断点
watch('expression') 监视一个表达式的值
unwatch('expression') 取消监视一个表达式的值
repl 进入 REPL 模式,可在其中执行 JavaScript 代码

示例:使用调试命令

在 Node.js 命令行调试器中,我们可以使用以下命令进行调试:

  1. debug> list(5)
  2. > 1 function add(a, b) {
  3. 2 return a + b;
  4. 3 }
  5. 4
  6. 5 const result = add(3, 5);
  7. debug> next
  8. debug> list(5)
  9. 1 function add(a, b) {
  10. > 2 return a + b;
  11. 3 }
  12. 4
  13. 5 const result = add(3, 5);

上述示例中,首先使用 list(5) 显示当前行前后 5 行的代码,然后使用 next 命令执行下一行代码,再次使用 list(5) 查看代码执行位置。

4. 查看变量值

在调试过程中,查看变量的值是非常重要的。我们可以使用 watch 命令监视变量的值,也可以在 Chrome DevTools 的 Scope 面板中查看变量的值。

使用 watch 命令

在 Node.js 命令行调试器中,使用 watch 命令监视变量的值:

  1. debug> watch('a')
  2. debug> watch('b')
  3. debug> next
  4. debug> repl
  5. Press Ctrl + C to leave debug repl
  6. > a
  7. 3
  8. > b
  9. 5

上述示例中,首先使用 watch 命令监视变量 ab 的值,然后使用 next 命令执行下一行代码,最后进入 REPL 模式查看变量 ab 的值。

使用 Chrome DevTools 查看变量值

在 Chrome DevTools 的 Scope 面板中,可以实时查看当前作用域内的变量的值。当代码执行到某个断点时,Scope 面板会显示当前作用域内的所有变量及其值。

总结

Node.js 内置调试器是一个强大的调试工具,它可以帮助开发者快速定位并解决代码中的问题。通过本文的介绍,你学会了如何启动调试会话、连接调试器、使用调试命令以及查看变量的值。希望这些知识能帮助你在 Node.js 开发中更加高效地进行调试。

以上就是关于使用 Node.js 内置调试器的详细介绍,快去试试吧!

调试工具 - 内置调试器 - 使用 Node.js 内置调试器