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
相關文章
相關標籤/搜索