在接下來的幾篇文章中,我們將研究如何以專業的方式來偵錯 JavaScript 和 TypeScript 程式碼。我們將學習如何使用 Visual Studio Code 中內建的偵錯器,而不是讓 console.log
到處亂飛。
偵錯器可讓你在程式執行時開啟程序,查看其狀態、變數、暫停並逐步觀察資料流。你甚至可以運行程式碼片段,並在運行時環境中嘗試想法。所有這些都無需停止程式後修改程式碼(添加 console.log!)並重新啟動。你能夠使用調試器解決問題並更快地了解程式碼。
我們先從一些簡單的Node.js 程式碼開始,然後專注於調試瀏覽器程式、Express 伺服器、GraphQL、TypeScript、Serverless、Jest 測試、Storybook 等等,不過在此之前要先了解一些必要的基礎知識!即使你不喜歡伺服器端 Node.js,仍然希望你先看完這篇文章。
取得程式碼
該系列在GitHub 上的程式碼:https://github.com/thekarel/debug-anything
我們第一個主題的程式碼非常簡單-先把下面的程式碼複製貼上到你的 index.js
檔案中:
const http = require('http'); const hostname = '127.0.0.1'; const port = 3456; const serverUrl = `http://${hostname}:${port}` const server = http.createServer((req, res) => { const name = 'World' res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end(`Hello, ${name}!\n`); }); server.listen(port, hostname, () => { console.log(`Server running at ${serverUrl}`); });
現在繼續並在VS Code 中打開資料夾:
為了確保一切正常,請試著運行它:
node index.js
然後訪問http ://127.0.0.1:3456
,你應該會看到Hello, World!
。
請確保立即停止node index.js
指令,否則你將收到一個醜陋的「錯誤: Error: listen EADDRINUSE
error soon
程式碼本身很簡單:執行HTTP伺服器,並且使用「Hello,World! ” 回應每個請求。很簡單對不對?但是這段簡單的程式碼足以了使我們解調試的基本概念。
## 新增功能
#讓我們在伺服器上新增一個功能:我們不再回傳硬編碼的訊息"Hello, World!",而是從查詢中得到name,在點擊
http:// 127.0.0.1:3456/?name=Coco 時會回覆
Hello, Coco!。
Coco 出現在哪裡不是更有趣嗎?試試看。啟動偵錯器!
## 啟動偵錯器確保已在VS Code 中開啟
index.js,按一下偵錯器圖標,按一下“執行並偵錯”,然後按一下Node.js:
現在你的伺服器正在調試模式下運行!訪問
你不會看到任何不同,應該仍然回傳預設訊息。接下來,在程式碼中加入一個
,這樣下次造訪伺服器URL 時將會暫停執行。可以透過點擊編輯器左邊的行號來實現:
訪問
,VS Code 將彈出一個檢視並暫停伺服器:
我們需要先找出查詢中name 的位置,這樣才能完成後面的工作。在
中:你會看到一個名為Variables 的部分。在Local 下,IDE 顯示了函數本地作用域的所有變數。有一個看起來可能性很高的:req:
現在我們知道了,請求查詢字串位於
中,在文件的幫助下
,我們把程式碼腳本修改為:const http = require('http');
const url = require('url');
const hostname = '127.0.0.1';
const port = 3456;
const serverUrl = `http://${hostname}:${port}`
const server = http.createServer((req, res) => {
const {name} = url.parse(req.url, true).query;
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end(`Hello, ${name}!\n`);
});
server.listen(port, hostname, () => {
console.log(`Server running at ${serverUrl}`);
});
由於程式碼已經被修改,所以需要重新啟動伺服器。使用偵錯器很簡單:你可以按
你也可以停用斷點,因為現在不需要它了:
#訪問
,看看我們的工作成果! 希望你能夠繼續探索調試器。在下一篇文章中,我們將會用 "step over"、 "step in" 和 "step out" 功能逐行除錯程式碼。
1、基礎
2、逐行步進調試
英文原文網址::https ://charlesagile.com/debug-series-nodejs-browser-javascript
#作者:Charles Szilagyi
本文轉載自:https://segmentfault.com/a/1190000022764213
相關教學推薦:vscode入門教學
#以上是VSCode調試教學(1):了解基礎知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

VisualStudio支持多種編程語言,如C#、C 、Python、JavaScript等。 1)它提供語法高亮、代碼補全和錯誤提示,幫助編寫代碼。 2)集成調試器可逐步執行代碼、設置斷點和查看變量值。 3)支持版本控制系統如Git,管理代碼變更和協同開發。 4)項目管理功能組織和構建大型項目,確保可維護性和可擴展性。

VS Code 多行註釋的方法有:1. 快捷鍵(Ctrl K C 或 Cmd K C);2. 手動添加註釋符號(/ /);3. 選擇菜單(“Comment Block”);4. 使用擴展;5. 遞歸註釋(/* /)和塊註釋({/ 和 /})。多行註釋有助於提高代碼可讀性和可維護性,但應避免過度使用。

VS Code 與 PyCharm 的主要區別在於:1. 擴展性:VS Code 是高可擴展的,擁有豐富的插件市場,而 PyCharm 默認功能更廣;2. 價格:VS Code 免費開源,PyCharm 專業版付費;3. 用戶界面:VS Code 現代友好,PyCharm 更複雜;4. 代碼導航:VS Code 適用於小型項目,PyCharm 更適合大型項目;5. 調試:VS Code 基礎,PyCharm 功能更強大;6. 代碼重構:VS Code 基本,PyCharm 功能更豐富;7. 代碼

VSCode 是用 TypeScript 和 JavaScript 編寫的。首先,它的核心代碼庫是用 TypeScript 編寫的,這是一種擴展了 JavaScript 並增加了類型檢查功能的開源編程語言。其次,VSCode 的一些擴展和插件是用 JavaScript 編寫的。這種組合使 VSCode 成為一款靈活且可擴展的代碼編輯器。

離線設置 VS Code 為中文: 下載中文語言包、解壓語言包文件、複製語言包文件、重啟 VS Code、設置中文語言(可選擇更改界面語言)。

VS Code 支持中文設置,可通過以下步驟完成:打開設置面板並蒐索 "locale"。將 "locale.language" 設置為 "zh-CN"(簡體中文)或 "zh-TW"(繁體中文)。保存設置並重啟 VS Code。設置菜單、工具欄、代碼提示和文檔將顯示為中文。還可自定義其他語言設置,如文件標籤格式、條目描述和診斷流程語言。

如何安裝 Visual Studio Code?下載安裝程序安裝安裝程序啟動 Visual Studio Code配置設置安裝擴展開始編碼

VS Code 切換中文模式的操作步驟:打開設置界面(Windows/Linux:Ctrl ,,macOS:Cmd ,)搜索 "Editor: Language" 設置在下拉菜單中選擇 "中文"保存設置重啟 VS Code


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版
中文版,非常好用

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),