调试Node.js
阅读 1.3k
在开发Node.js应用时,常常需要对其进行调试,调试的方式有多种,本篇介绍一种常用的:即在Chrome浏览器
中进行调试。
原理
我们先来看看原理,V8提供的调试功能是基于TCP协议
的,因此Node.js可以轻松地实现远程调试,在启动后,将开启一个Node调试进程
,客户端(Chrome浏览器)通过连接它来实现彼此通信,它们之间是通过websocket
来通信的,其原理图如下:
快速上手
话不多说,直接上手试试,比如,我想要看看Buffer
这个全局对象上有哪些方法。
先创建一个debug.js
文件,内容如下:
const { Buffer } = require('buffer')
console.dir(Buffer)
然后,在控制台执行命令:
node --inspect-brk debug.js
会出现如下信息:
Debugger listening on ws://127.0.0.1:9229/4fa5d640-b2f8-4091-b383-885fbd828e42
这说明一个 Node.js 进程(Debugger)
正在websocket协议的9929
端口上进行侦听,在 Chrome浏览器中,按下f12,打开开发者工具,点击如下图标:
Chrome就会自动连接到这个Debugger进程,在Chrome的Sources
面板中,将自动在第一行上打上断点:
这个面板大家都很熟悉了吧,右边的调试按钮可以很方便的查看和调试,当执行完Buffer的打印语句后,就可以在Console
面板中发现打印的数据了。
关于调试按钮,最常用的有三个:
- 最左边的是 resume script execution (F8)
- 第二位的是 step over next function call(F10)
- 最右边的是 step(F9),一行一行地执行
注意:如果Chrome没有识别,地址栏中输入:chrome://inspect
,勾选Discover network targets
选项即可:
参考
最后编辑于: 2022-06-29