使用Chrome浏览器调试Node.js项目
使用Js做后端的程序比较复杂,因此一个良好的调试工具是必不可少的。
前台的Js我们可以采用浏览器来调试,那么后端的NodeJs脚本如何调试呢?
Chrome浏览器调试
项目准备
我们目前手头有老师给的上一届优秀项目
观察上一届学长的启动服务器文件为node ./bin/www
查看www文件发现是个js脚本,里面指定了把app.js运行再3000端口
启动开发者工具
node --inspect ./bin/www
inspect参数是启动调试模式的。
但是这个时候我们发现打开127.0.0.1:3000跟正常打开没有什么区别。
这个时候需要我们打开F12浏览器开发者工具。
与往常不同的是该处出现了nodejs的图标。
点击进入
主要有四个面板
- Console:控制台
- Memory:内存
- Profiler:性能
- Sources:源码
这些功能跟浏览器的开发者工具基本一致,此处不在赘述。
调试非服务脚本
Web 服务脚本会一直在后台运行,但是大部分脚本只是处理某个任务,运行完就会终止。这时,我们可能根本没有时间打开调试工具。等我们打开了,脚本早就结束运行了。这时怎么调试呢?
node --inspect=9229 -e "setTimeout(function() { console.log('123'); }, 30000)"
上面指令中,--inspect=9229
指定调试端口为 9229,这是调试工具默认的通信端口。-e
参数指定一个字符串,作为代码运行。
访问chrome://inspect
,就可以进入调试工具,调试这段代码了
代码总是添加setTimeout,肯定不是长久之计。
对于运行时间特别短的脚本可以采用下面的命令
node --inspect-brk=9229 a.js
上面代码中,--inspect-brk
指定在第一行就设置断点。也就是说,一开始运行,就是暂停的状态。