调试Node.js程序
Webstorm调试Node.js
- 添加配置
- 选择以什么样的程序运行文件,这里选择Node.js
- 选择启动文件和参数
- 如果点击run就直接运行
- 如果使用debug进行调试,就得添加断点
- StepOver的意思就是执行这一行,鼠标悬浮到相应变量并点击就可以看到变量当前的值了
- 如果想监听其他变量的值,可以点击变量中的"+" 号
- 如果觉得debugger完成了就点击stop
- 我们除了执行这一行,我们还可以进入这一行,比如如果我们想知道一个函数里面具体的逻辑,就点击step into ,如果看完了想从函数里面退出就点击 step out
- 如果不想进入断点调试就点击恢复,并执行并结束当前程序
- 这样每次都是添加task 1 ,可不可以配置一下,让参数自己输入呢?
命令行和Chrome调试Node.js
- 在webstorm中打开命令行运行
node --inspect-brk cli.js add task 33
,它就会把程序停在这里,等着我们去debugger
- 当我们打开任意网站,F12打开控制台都会有一个Node.js的调试器
- 我们只需要点击这个调试器,将弹窗来的页面拖出来,就可以进行调试了,弹出来的第一个页面是程序的入口文件
cli.js
- 可是我们为什么没有看到其他文件呢?因为其他文件我们还没有引入
- 如果我们添加debugger,点击右边的resume恢复,程序就会停到25行,引入其他文件
- 接着在index.js中add方法中加入断点,点击resume恢复,进入停在断点处,此时list是空的
- 点击step over,程序进入下一行,list拿到了数据,这样不需要任何的IDE,只要命令行配合浏览器就能够很好的进行断点debugger调试了
- 如果想监听自己想知道的变量,就在watch中添加。如果想知道程序中的变量,就可以看右边的local是本地变量,Closure是闭包变量,Global是全局变量
-
同时断点可以使用代码
debugger
的来添加,不管是使用webstorm、vscode还是浏览器,程序运行到debugger
处都会停下来 -
当我们在调试命令行程序的时候
node --inspect-brk ...
必须加brk 参数,让程序一开始就段在这里,等我们打好断点才能运行,否则程序就会直接运行运行结束。什么时候不加brk呢?http程序!因为服务器是24小时运行的,有个请求过来就会断,因此一开始就不需要断,等请求来了再断
总结
- step over 下一步
- step in 进入方法内部
- step out 从方法内部退出
- wathch 监控变量
转载自:https://juejin.cn/post/7248145094599278653