在 Node.js 开发过程中,调试是不可或缺的环节。当代码出现问题时,高效的调试工具能帮助我们快速定位并解决问题。Node.js 提供了内置调试器,它可以帮助开发者逐行执行代码、查看变量的值、设置断点等。本文将详细介绍如何使用 Node.js 内置调试器。
要使用 Node.js 内置调试器,我们可以在启动 Node.js 应用时添加 --inspect
或 --inspect-brk
标志。
--inspect
:启动 Node.js 应用并允许调试器连接。--inspect-brk
:启动 Node.js 应用,并在代码的第一行暂停执行,等待调试器连接。创建一个简单的 Node.js 文件 debugExample.js
:
function add(a, b) {
return a + b;
}
const result = add(3, 5);
console.log(result);
--inspect
启动调试在终端中运行以下命令:
node --inspect debugExample.js
终端会输出类似以下信息:
Debugger listening on ws://127.0.0.1:9229/xxxxxx
For help, see: https://nodejs.org/en/docs/inspector
这表示 Node.js 应用已启动并允许调试器通过 ws://127.0.0.1:9229/xxxxxx
连接。
--inspect-brk
启动调试
node --inspect-brk debugExample.js
应用会在代码的第一行暂停执行,等待调试器连接。
有多种方式可以连接到 Node.js 内置调试器,这里介绍两种常用的方法:Chrome DevTools 和 Node.js 命令行调试器。
chrome://inspect
。Remote Target
部分,点击 Configure
按钮,确保 localhost:9229
已添加到目标列表中。inspect
链接。在终端中运行以下命令:
node inspect debugExample.js
进入调试模式后,你会看到类似以下信息:
< Debugger listening on ws://127.0.0.1:9229/xxxxxx
< For help, see: https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in debugExample.js:1
> 1 function add(a, b) {
2 return a + b;
3 }
这表示代码已在第一行暂停执行。
在 Node.js 命令行调试器中,有许多有用的调试命令。以下是一些常用命令的介绍:
命令 | 描述 |
---|---|
cont 或 c |
继续执行代码,直到下一个断点 |
next 或 n |
执行下一行代码 |
step 或 s |
进入函数内部 |
out 或 o |
从当前函数跳出 |
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 命令行调试器中,我们可以使用以下命令进行调试:
debug> list(5)
> 1 function add(a, b) {
2 return a + b;
3 }
4
5 const result = add(3, 5);
debug> next
debug> list(5)
1 function add(a, b) {
> 2 return a + b;
3 }
4
5 const result = add(3, 5);
上述示例中,首先使用 list(5)
显示当前行前后 5 行的代码,然后使用 next
命令执行下一行代码,再次使用 list(5)
查看代码执行位置。
在调试过程中,查看变量的值是非常重要的。我们可以使用 watch
命令监视变量的值,也可以在 Chrome DevTools 的 Scope
面板中查看变量的值。
watch
命令在 Node.js 命令行调试器中,使用 watch
命令监视变量的值:
debug> watch('a')
debug> watch('b')
debug> next
debug> repl
Press Ctrl + C to leave debug repl
> a
3
> b
5
上述示例中,首先使用 watch
命令监视变量 a
和 b
的值,然后使用 next
命令执行下一行代码,最后进入 REPL 模式查看变量 a
和 b
的值。
在 Chrome DevTools 的 Scope
面板中,可以实时查看当前作用域内的变量的值。当代码执行到某个断点时,Scope
面板会显示当前作用域内的所有变量及其值。
Node.js 内置调试器是一个强大的调试工具,它可以帮助开发者快速定位并解决代码中的问题。通过本文的介绍,你学会了如何启动调试会话、连接调试器、使用调试命令以及查看变量的值。希望这些知识能帮助你在 Node.js 开发中更加高效地进行调试。
以上就是关于使用 Node.js 内置调试器的详细介绍,快去试试吧!