node.js调试入门

130 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情

前言

好多前端小伙伴都知道node,但是我个人之前总是觉得我好像在开发中用不到node,但是我为什么要学node.js调试呢,因为我想提高下水平,为了职场更好地发展,为了学习更高级的编程思维,我想要开始学习node,学习之前,先了解下node.js如何调试。

一、Inspector优势

  • 可以查看当前上下文的局部变量和全局变量

image.png

  • 可以直接执行一些特定的代码

image.png

  • 调用堆栈

image.png

  • 不侵入我们的代码
命令
1)mkdir node-debug          // 创建空文件夹
2)code node-debug           // 使用vsCode打开node-debug文件夹

二、Inspector的构成以及原理

  • 启动Inspector的时候会启动WebSockets服务(监听命令)(双向通信)

image.png

  • Inspector协议(用一系列代码表示各种各样的命令)
  • HTTP服务(获取原信息)(单向通信)

image.png 其中devtoolsFrontendUrl的值直接拷贝到chrome中,可以直接用chrome的调试工具进行调试。

三、激活调试

  • 激活方法
node --inspect app.js

image.png

命令: node app.js      // 启动 (在3000端口打开)
debug命令: node --inspect app.js
  • 如果没有激活node调试,可以debug吗?
这个在linux和OSX上可以监听到SIGUSR1发送的调试信息

四、调试客户端-chrome devtools

a、 访问chrome://inspect,点击配置按钮,确保Host和Prot对应
b、访问元信息中的devtoolsFrontendUrl
c、点击绿色小图标
  • 在chrome浏览器中输入chrome://inspect,点击configure,确保地址一致,点击target下的inspect调试面板就出现了

image.png

image.png

image.png

image.png

五、调试客户端vscode

  • 启动方式:按F5
  • 配置launch.json(想要指定调试的文件,并添加参数)
方法:选择添加配置Add Configuration...,出现默认的launch.json文件。
将program参数后面的文件名改为自己需要调试的文件名;参数:添加args。

image.png

另:在vsCode中有自动附加的功能,如果在vsCode中打开了此功能,也可以捕捉到。
方法:ctrl+shift+p搜索Debug:Toggle Auto Attach,然后控制台输入node --inspect app.js。 若有多个调试文件,可以添加多个配置,修改name进行区分。

六、添加命令行参数

命令: node --inspect app,js
自定义http:port: node --inspect=127.0.0.1:9999 app.js  = node --inspect=9999 app.js
程序运行速度过快,还无法进入断点,使用 node --inspect-brk app.js解决
在命令行进行断点调试: node inspect

chrome浏览器开发者工具
profiler:用来检测javaScript的性能(主要是时间)
sources:可以在里面打断点,监听本地变量
watch:打断点,监听本地变量
Call Stack:调用堆栈
Scope:作用域
BreakPoints:端点列表
Memory:内存

image.png

结束语

上述便是我所了解到的一些node.js调试,有感兴趣的可以找一些相关视频深入学习!