- Node.js教程
- Node.js - 教程
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 首次申请
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 活动
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 流程
- Node.js - 扩展应用程序
- Node.js - 包装
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲器
- Node.js - Streams
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 快速入门
- Node.js - MySQL创建数据库
- Node.js - MySQL创建表
- Node.js - MySQL Insert Into
- Node.js - MySQL Select From
- Node.js - MySQL Where 子句
- Node.js - MySQL Order By
- Node.js - MySQL Delete
- Node.js - MySQL Update
- Node.js - MySQL Join
- Node.js MongoDB
- Node.js - MongoDB 快速入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB Insert
- Node.js - MongoDB Find
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB Delete
- Node.js - MongoDB Update
- Node.js - MongoDB Limit
- Node.js - MongoDB Join
- Node.js模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - utility 模块
- Node.js - Web 模块
Node.js - 调试器
对于较小的Node.js代码,您可以使用 console.log() 或 console.debug() 函数间歇性地显示消息或变量的值,以手动调试代码。但是,如果Node.js代码变得更大、更复杂,则手动方法没有帮助。相反,我们可以在运行时中使用内置Node.js调试器。
考虑一个简单的Node.js代码,如下所示 (main.js) -
let marks = [34, 45, 98, 26, 51];
let total = 0;
for (let i = 0; i <= marks.length; i++) {
total += marks[i];
}
var no = marks.length;
console.log(total/no);
我们预计上述程序会计算 5 名学生获得的平均分数。但是,结果不是我们预期的,当我们按如下方式运行它时 -
PS D:\nodejs> node main.js
NaN
在 JavaScript 中,NaN 表示不是数字。为了跟踪此错误,让我们使用 Node.js 调试器。相反,请使用以下命令运行程序 -
PS D:\nodejs> node inspect main.js
< Debugger listening on ws://127.0.0.1:9229/ca4aece6-308a-4979-8a32-734fe8ebbd0b
< For help, see: https://nodejs.org/en/docs/inspector
<
connecting to 127.0.0.1:9229 ... ok
< Debugger attached.
<
Break on start in a.js:1
> 1 let marks = [34, 45, 98, 26, 51];
2
3 let total = 0;
debug>
内置调试器从 localhost 的端口 9229 开始。调试器在代码的第一行中断。
我们通过告诉调试器转到程序将执行的下一行来逐步执行代码。Node.js允许以下命令使用调试器 -
命令 | 描述 |
---|---|
c or cont |
继续执行到下一个断点或程序结束。 |
n or next |
移动到下一行代码。 |
s or step |
单步执行函数。默认情况下,我们只在正在调试的块或范围内单步执行代码。 |
o |
退出函数。单步执行函数后,当函数返回时,调试器将返回到主文件。 |
pause |
暂停正在运行的代码。 |
依次按 'n' 或 'next' 遍历代码。在此循环中,每次迭代都会更改两个变量 — total 和 i。让我们为这两个变量设置观察器。
debug> watch('total')
debug> watch('i')
当您在调试提示符前按“n”时,您可以看到监视下两个变量的瞬时值。
break in main.js:6
Watchers:
0: total = 0
1: i = 0
4
5
> 6 for (let i = 0; i <= marks.length; i++) {
7 total += marks[i];
8 }
每次按 next 时,调试器中都会显示更改的值或总计和 I。
在最后一次迭代中,调试器的状态为 -
Watchers:
0: total = 254
1: i = 5
4
5
> 6 for (let i = 0; i <= marks.length; i++) {
7 total += marks[i];
8 }
下次,total 的值变为 NaN,因为循环试图超出数组。
Watchers:
0: total = NaN
1: i = 6
4
5
> 6 for (let i = 0; i <= marks.length; i++) {
7 total += marks[i];
8 }
因此,我们可以知道错误在于 for 循环的形成。内置调试器有助于识别错误。
您还可以在 VS Code 中启用调试Node.js代码。按 ctrl+shift+p 打开命令面板,然后选择 Attach Node.JS 进程。然后从“运行”菜单开始调试程序。它允许您在代码中执行“单步跳过”、“单步执行”和“单步执行”操作,以跟踪程序的流程。您还可以在一个或多个变量上设置监视,以便在逐步执行程序时跟踪值。