NodeJS越来越火(真是火烧火燎的),它的火爆给前端开发同学指出了一条新路——还可以做后端开发(或回归后端开发)。这篇文章不是讨论NodeJS如何好、如何使用的,相信想找这类资料的同学已经不满足写个HelloWorld了,入门教程已经无法满足我们对NodeJS的热爱了,我们要写更复杂的、更高大上的代码。系统的复杂度和代码量上来后,修复各种各样的Bug就我们这些coder的主要工作了。而定位Bug最常用也是最有效的方式就是调试,因为NodeJS还非常非常年轻,很多IDE对它支持不是很好,所以我们就聊聊NodeJS的调试方法。废话少叙,进入正题(好像已经说了很多了)。
我相信NodeJS的调试方法有很多,在一篇文章里介绍太多中方式并不好,就算看完了到最后还是不知道用哪个,所以我在这篇文章里就只介绍一个调试工具——node-inspector,这个调试工具也是基于NodeJS开发的。
准备工作
1、nodejs运行环境
2、基于nodejs开发的程序
3、chrome浏览器(用它干什么,后面就知道了)
下我们就是开始NodeJS的调试旅程
1、首先我们要准备NodeJS的运行环境,没有它我们什么都不了。
2、安装node-inspector运行环境
安装命令:npm install -g node-inspector
注意:a、参数-g 将node-inspector安装到系统环境变量中,可以在任何路径下执行,尽量保留。
b、如果是Linux或Unix系统,需要使用root权限安装
3、启动node-inspector
node-inspector启动后会生成一个服务,主要负责调试工具与nodejs程序之间的沟通工作,一个桥梁。
a、window:直接在任意路径下执行 node-inspector
这个窗口不要关闭
b、Linux || Unix:node-inspector & 将node-inspcetor作为后台服务,这样就不怕误操作,把窗口关掉了。
出现进程PID,表示node-inspcetor已经成为后台进程,可以ctrl+c结束当前任务,node-inspcetor进程依然保持。
如果想停止可以 kill -9 pid 杀掉node-inspcetor进程。
4、打开chrome,输入地址 http://127.0.0.1:8080/debug?port=5858
相信大家都看到有错误了,知道什么原因吗? 恭喜你猜对了,我们的NodeJS程序还没起来呢,目前先到这,现在需要回过头来看看我们的NodeJS程序的变化。
5、打开NodeJS的调试模式
node --debug app.js
看到跟以前启动有什么不同吗?
对了,多了一行提示信息,debugger的监听端口是5858,这个端口可以修改,请baidu或google。
6、再次打开chrome,刷新页面
讨厌的错误没有了,我们的chrome通过node-inspector服务连接到nodejs服务上了,并显示nodejs应用的入口文件内容。
在这里面可以像以前调试js代码一样的来跟踪我们的nodejs应用了。(怎样使用chrome调试就不在这里说了)
总结:
1、node-inspector依赖nodejs的运行环境。
2、调试过程中node-inspector的服务不要重启,只需要在重启nodejs应用后刷新一下chrome的页面即可。
3、严格的来说node-inspector不是一个完整的调试工具,它需要一个可视化的调试界面来展示所有的调试信息,node-inspector是调试界面与nodejs之间的桥梁,是调试界面能与nodejs沟通。