使用Chrome DevTools有效調試Node.js

本文介紹如何使用最新的Google Chrome DevTools高效地調試Node.js程序。請繼續閱讀,並閱讀關於Chrome DevTools的節點。

使用Chrome DevTools有效調試Node.js

調試是識別和消除軟件應用程序中的錯誤的任務,它不僅僅是在代碼中打印出值。本文介紹如何使用最新的Google Chrome DevTools高效地調試Node.js程序。

許多開發人員使用console.log來調試他們的應用程序。但為什麼?答案很簡單:如果你沒有正確設置你的環境,使用調試器很不方便。

為什麼console.log不是最好的選擇

使用console.log來調試你的代碼通常會讓你陷入停止你的應用程序的無限循環,添加一個console.log,並重新啟動你的應用程序。除了減慢應用程序的開發速度之外,它還會讓你的文字變得骯髒,並且會產生不必要的代碼。此外,嘗試在其他潛在日誌記錄操作的噪聲旁邊註銷變量時,可能會在嘗試查找正在調試的值時使調試變得困難。

調試工具為您提供了console.log無法提供的一些重要功能。特別是,它們允許您在代碼中的特定位置暫停執行應用程序,並在程序仍在運行時檢查並修改變量的值。

Node.js的內置調試器

Node.js附帶一個內置的調試工具。如果您在命令行上啟動應用程序,並且應用程序的起點node debug index.js,那麼它將以調試模式啟動。

這個命令有兩個作用:

  • 您啟動一個交互式調試shell。
  • 然後在端口5858上打開一個TCP連接,您可以在其中連接遠程調試器與您的應用程序。

在使用console.log進行調試之後,CLI調試器是一個令人不舒服的解決方案。但是您有一組命令可以在運行時在應用程序中進行導航。

$ node debug index.js

高級調試

Chrome和Node.js與V8共享相同的JavaScript引擎,所以應該可以使用相同的工具來調試和分析應用程序。

對於舊版本的Node.js,有一個名為node-inspector的工具,它將Node的V8引擎與Chrome開發人員工具相連接。它不適用於當前的Node.js版本,但在2016年5月,該--inspect標誌著陸在Node.js中,並具有更好的調試支持。

與節點檢查器相比,您無需安裝任何附加模塊即可使--inspect標誌正常工作。你只需要用這個標誌開始你的應用程序。

$ node --inspect index.js

只要您啟動應用程序,Node.js會為您提供一個URL,您可以將其複製到Chrome瀏覽器的地址欄中。您的瀏覽器然後連接到您的Node.js實例,並讓您調試和配置您的應用程序。這包括設置斷點和觀看錶達式或捕獲應用程序的內存快照。

使用Chrome DevTools有效調試Node.js

使用Chrome開發人員工具調試Node.js應用程序

IDE調試(VS代碼)

目前大多數IDE支持Node.js應用程序的調試,如WebStorm,Eclipse或Visual Studio Code。

讓您的調試環境在Visual Studio代碼中啟動,這很簡單,順便說一下,這只是另一個Node.js應用程序。您只需點擊窗口左側的調試按鈕,然後選擇要調試的環境(Node.js)。

然後,Visual Studio代碼為您創建啟動配置並將其保存到.vscode/launch.json應用程序的根文件夾中的文件中。根據您的應用程序的起點,您必須在此進行調整。VS代碼預計你的應用程序開始於app.js。如果您以不同的方式命名起點,只需進入launch.json並更改程序鍵的值即可。之後,您可以啟動您的調試器並查看您的應用程序。

使用Chrome DevTools有效調試Node.js

我們以一個簡單的Web服務器為例。為了調試此應用程序,您必須設置一個斷點(通過單擊行號左側),啟動調試器,然後轉到本地瀏覽器中的服務器URL。然後應用程序會自動停止在您的斷點處,您可以開始逐步完成代碼。

如您所見,不再需要console.log語句來調試您的應用程序代碼。只需啟動您選擇的調試器,並有一個舒適的界面來在運行時查看您的代碼。


分享到:


相關文章: