nodejs调试指南

如今用nodejs写服务端的代码愈来愈多,所以,对nodejs的调试也显得愈来愈重要。
毕竟调试的越6,找bug的效率就越高~
对于nodejs的调试,目前方式有不少。
因此小小总结一下~

Console.log

方式:
直接在想要输出的地方 console.log

Node.js Inspect

原理:

V8引擎提供了相应的模块,能够经过TCP协议访问对应的端口进行调试。

debugger方式

方式:

(1).须要先在项目中的代码添加 debugger
(2).而后在控制台对应的项目下,运行 node inspect index.js(入口文件)
注:在Node >= 6.3的版本可使用inspect方式,低版本使用debug方式,即node debug index.js(入口文件)

例子:

Chrome + Node.js方式

就是使用Chrome的devtools链接上Node.js的Debugger模块进行调试。

方式:

(1).在控制台对应的项目下,运行 node --inspect index.js(入口文件)
或者 node --inspect-brk index.js(入口文件)
(2).Chrome下输入 chrome://inspect,找到对应的Remote Target,如图:

--inspect 与 --inspect-brk 区别

--inspect: 启动debug模式,并监听9229端口(默认端口);
--inspect-brk: 启动debug模式,并监听9229端口(默认端口),并在开始处进行断点;
注:版本支持
  • Node.js 6.3+
  • Chrome 55+

VSCode

VSCode内置了调试功能,能够直接链接到对应的调试端口,进行调试。
方式:
(1).进去VSCode的调试面板,即以下图:
(2).在 .vscode文件夹下的 launch.json进行配置对应的调试方式,若没有就进行建立;
i.点开下图的红框再点击「添加配置」;
(3).项目利用debug模式启动;
注:
Node >= 6.3 使用inspect模式,低版本使用debug模式
(4).在须要的地方进行断点,而后在VSCode的debug面板,开始调试,即点击以下图:
配置:
在这里简单的说一下我所知道的VSCode配置的方式;
目前VSCode支持调试Nodejs的两种方式,一种是 launch,一种是 attach
根据官方文档加上个人理解,主要区别:
launch是启动程序并进行调试;
attach是调试某个已启动的线程;
attach方式
根据官方文档,attach的方式有三种方式,
(1).Auto Attach
1.断点
2.开启自动开启模式,如图:
3.而后在项目中运行断点模式;
(2).Attach to Node Process
1.选择对应的进行模式
2.选择对应的进程便可;
注意:
这种方式就不须要启动debug模式也能进行选择调试,VSCode会自动开启对应的调试端口;
若是想看是否自动开启端口,MAC端用户可使用netstat -anL 查看
(3).Setting up an "Attach" configuration
最简单的配置方式:
{    
    "name": "Attach to Process",   
    "type": "node",    
    "request": "attach",    
    "port": 9229
}
复制代码
即链接9229端口进行调试( inspect协议默认端口为9229);
注:此方式须要项目以debug模式进行启动;
根据文档:
Since it is a bit laborious to repeatedly find the process ID and enter it in the launch configuration, Node debug supports a command variable PickProcess that binds to the process picker (from above) and that lets you conveniently pick the process from a list of Node.js processes.
由于配置文件是支持经过进程ID进行调试的,可是用在配置文件配置进程ID调试比较费力,VSCode支持命令变量PickProcess,它绑定到进程选择器(从上面),而且能够方便地从Node列表中选择进程.js进程。
配置方式:
{
    "name": "Attach to Process",
    "type": "node",
    "request": "attach",
    "processId": "${command:PickProcess}"
}复制代码
注:此方式也是不须要以debug模式也能调试,VSCode会开启对应的调试端口


ndb

待续...html

参考连接:

http://nodejs.cn/api/debugger.html
https://i5ting.github.io/node-debug-tutorial/#501
https://www.jianshu.com/p/611e7be13655
https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_attaching-to-nodejs
https://segmentfault.com/a/1190000011192094
http://www.ruanyifeng.com/blog/2018/03/node-debugger.html
相关文章
相关标签/搜索