Nodejs 調試方法

來源:互聯網
上載者:User

標籤:nec   node.js   頁面   連結   storm   break   deb   port   ack   

    這兩天鼓搗了一下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使用ChromeDebugging Protcol。所以node-inspector在其中起到了翻譯和轉達的作用。

    安裝node-inspector

    npminstall -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最新的調式方法

    V8Inspector 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官方文檔

Nodejs 調試方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.