Nodejs 調試方法


    這兩天鼓搗了一下node項目,記錄一下node的調試方法。

    前端開發的調試可以用打日志(console.log)或者斷點調試(debugger;配合Chrome或firebug)甚至IDE(webstorm)來調試。

Node也差不多。

打日志

    console.dir,console.log,引入 asserts 模塊,對調試區域進行debug等方法, 這種方法平時檢測一下還是可以的,真正有難纏的bug的時候會有種暴力窮舉的感覺。

斷點調試

    斷點調試也有幾種方法

a.Node.js內置調試工具

    基於TCP的協議,通過commod界面可以對nodejs腳本進行調試

    $ node debug myscript.js< debugger listening on port 5858

    connecting... okbreak in /home/indutny/Code/git/indutny/myscript.js:1

      1 x = 5;

      2 setTimeout(() => {

      3   debugger;

    debug>

    腳本上用debugger;設置斷點。
    用debug模式運行腳本,node debug app.js

    --debug 和 --debug-brk參數。這兩個參數只會啟動Debugger監聽模式,不會進入命令行調試模式,而且前者會運行完所有代碼,通常可用於事件調試,后者會在進入時中斷,方便從頭開始調試。

    詳細調試指令在debug模式下輸入help或參考官方文檔,https://nodejs.org/dist/latest-v7.x/docs/api/debugger.html

    試了之后,效率感人,操作有點繁瑣,命令行界面做調試始終有點不友好

b.node-inspector

    node-inspector可以讓我們在devtools里面斷點調試。

    Node.js原生Debugger模塊使用的是V8-Debug Protcol,而且DevTools使用Chrome Debugging Protcol。所以node-inspector在其中起到了翻譯和轉達的作用。

    安裝node-inspector

    npm install -g node-inspector

    以后台方式運行node-inspector 默認debug端口為5858,監聽8080端口,

    node-inspector &

    也可以修改端口

    node-inspector --web-port 8088 --debug-port 5859

    這里的 --web-port 是 Chrome Devtools 的調試頁面地址端口,--debug-port 為 NodeJS 啟動的內建 debug 端口

    我們可以在 http://localhost:8080/debug?port=5858打開頁面,調試使用 --debug(-brk) 參數打開的程序

c、node最新的調式方法

    V8 Inspector Integration 可以讓 DevTools 直接連接 Node.js的Debugger進行調試。

    新版本的Chrome瀏覽器和新版本的Node.js支持通過一個新的調試協議能互相直接通訊了,就不再需要node-inspector了。
    nodejs 6.3+

    Chrome 55+

    運行 node --inspect app.js

 

    在Chrome打開輸出的地址,如

    chrome-devtools://devtools/remote/serve_file/@60cd6e859b9f557d2312f5bf532f6aec5f284980/inspector.html?experiments=true&v8onl

y=true&ws=127.0.0.1:9229/9c1562a2-7f51-4605-a77d-4217cbfb4965

    新開一個標簽或窗口,進入頁面進行調試,如

    http://localhost:8999

    因為這個內置的debug已經足夠強大,node-inspector都不更新了。。

    然而,我並不滿意,然后找到了vscode

d、vscode

    在vscode可以很方便的類似ide那樣對node進行調試,詳見圖

    打開項目 進入debug,直接run,請求接口或頁面

 

    進入斷點,調試界面如下

 

    還可以attach process 和 add configuration

 

    怎么樣,是不是很像visual studio,滿滿的親切感~

IDE調試

    這個eclipse和webstorm都可以很容易做到

    奈何我更喜歡輕量級的編輯器

 

參考鏈接

http://www.barretlee.com/blog/2015/10/07/debug-nodejs-in-command-line/

NodeJS的代碼調試和性能調優

 

http://i5ting.github.io/node-debug-tutorial/ 
node-debug tutorial

 

https://www.npmjs.com/package/node-inspector 
node-inspector

 

https://www.madcoder.cn/node-debug-inspect.html
最新Node.js調試大法 — v8_inspector

 

https://nodejs.org/dist/latest-v7.x/docs/api/debugger.html
nodejs官方文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM