NodeJS越來越火(真是火燒火燎的),它的火爆給前端開發同學指出了一條新路——還可以做后端開發(或回歸后端開發)。這篇文章不是討論NodeJS如何好、如何使用的,相信想找這類資料的同學已經不滿足寫個HelloWorld了,入門教程已經無法滿足我們對NodeJS的熱愛了,我們要寫更復雜的、更高大上的代碼。系統的復雜度和代碼量上來后,修復各種各樣的Bug就我們這些coder的主要工作了。而定位Bug最常用也是最有效的方式就是調試,因為NodeJS還非常非常年輕,很多IDE對它支持不是很好,所以我們就聊聊NodeJS的調試方法。廢話少敘,進入正題(好像已經說了很多了)。
我相信NodeJS的調試方法有很多,在一篇文章里介紹太多中方式並不好,就算看完了到最后還是不知道用哪個,所以我在這篇文章里就只介紹一個調試工具——node-inspector,這個調試工具也是基於NodeJS開發的。
准備工作
1、nodejs運行環境
2、基於nodejs開發的程序
3、chrome瀏覽器(用它干什么,后面就知道了)
下我們就是開始NodeJS的調試旅程
1、首先我們要准備NodeJS的運行環境,沒有它我們什么都不了。
2、安裝node-inspector運行環境
安裝命令:npm install -g node-inspector
注意:a、參數-g 將node-inspector安裝到系統環境變量中,可以在任何路徑下執行,盡量保留。
b、如果是Linux或Unix系統,需要使用root權限安裝
3、啟動node-inspector
node-inspector啟動后會生成一個服務,主要負責調試工具與nodejs程序之間的溝通工作,一個橋梁。
a、window:直接在任意路徑下執行 node-inspector
這個窗口不要關閉
b、Linux || Unix:node-inspector & 將node-inspcetor作為后台服務,這樣就不怕誤操作,把窗口關掉了。
出現進程PID,表示node-inspcetor已經成為后台進程,可以ctrl+c結束當前任務,node-inspcetor進程依然保持。
如果想停止可以 kill -9 pid 殺掉node-inspcetor進程。
4、打開chrome,輸入地址 http://127.0.0.1:8080/debug?port=5858
相信大家都看到有錯誤了,知道什么原因嗎? 恭喜你猜對了,我們的NodeJS程序還沒起來呢,目前先到這,現在需要回過頭來看看我們的NodeJS程序的變化。
5、打開NodeJS的調試模式
node --debug app.js
看到跟以前啟動有什么不同嗎?
對了,多了一行提示信息,debugger的監聽端口是5858,這個端口可以修改,請baidu或google。
6、再次打開chrome,刷新頁面
討厭的錯誤沒有了,我們的chrome通過node-inspector服務連接到nodejs服務上了,並顯示nodejs應用的入口文件內容。
在這里面可以像以前調試js代碼一樣的來跟蹤我們的nodejs應用了。(怎樣使用chrome調試就不在這里說了)
總結:
1、node-inspector依賴nodejs的運行環境。
2、調試過程中node-inspector的服務不要重啟,只需要在重啟nodejs應用后刷新一下chrome的頁面即可。
3、嚴格的來說node-inspector不是一個完整的調試工具,它需要一個可視化的調試界面來展示所有的調試信息,node-inspector是調試界面與nodejs之間的橋梁,是調試界面能與nodejs溝通。