Web 開發
Go 在高效能 Web 伺服器與 API 領域應用廣泛。其標準庫提供強大的 HTTP、路由與 JSON 處理能力,Gin、Echo 等主流框架則帶來更高層抽象。本模組將從 JavaScript/Node.js 開發者視角,系統介紹 Go Web 開發,並配合實用代碼對比與最佳實踐。
Go Web 開發概覽
- 標準庫:
net/http
用於 HTTP 伺服器、路由、中介軟體 - 主流框架: Gin、Echo、Fiber、Chi
- 核心特性: 簡潔、高效能、靜態型別、並發
- 常見場景: RESTful API、微服務、靜態檔案服務、即時服務
Hello World:最小 HTTP 伺服器
正在加载...
路由與參數
Go 標準庫提供基礎路由,複雜路由建議使用 Gin、Echo 等框架。
正在加载...
處理 JSON 請求與回應
正在加载...
靜態檔案服務
正在加载...
中介軟體(Middleware)
Go 中介軟體通常以處理器包裝實現,Gin/Echo 等框架提供便捷的中介軟體機制。
正在加载...
Go 與 JavaScript/Node.js 對比
特性 | Go(net/http, Gin) | JavaScript(Node.js, Express) |
---|---|---|
型別系統 | 靜態強型別 | 動態弱型別 |
並發模型 | goroutine、channel | 事件迴圈、async/await |
效能 | 高,編譯型 | 良好,直譯型 |
路由 | 標準庫基礎,Gin 豐富 | Express、Koa、Fastify |
中介軟體 | 處理器包裝,Gin/Echo | Express/Koa 中介軟體 |
JSON 處理 | encoding/json,結構標籤 | JSON.parse/stringify,body-parser |
靜態檔案 | FileServer | express.static |
錯誤處理 | 顯式,error 值 | try/catch,錯誤中介軟體 |
最佳實踐
- 使用 context 傳遞請求作用域資料與取消信號
- 輸入驗證與過濾
- 顯式處理錯誤並返回合適狀態碼
- 使用中介軟體實現日誌、認證、CORS 等
- 複雜專案優先選用 Gin、Echo 等框架
- 為處理器與中介軟體編寫測試
練習題
- Go 的
net/http
與 Node.js 的 HTTP 模組有何不同? - 分別展示 Go 和 Node.js 如何處理 JSON 請求與回應。
- 為什麼實際專案中推薦使用 Gin 或 Echo,而不是只用標準庫?
專案實戰
用 Go 實作一個簡單的 RESTful API,支援資源(如任務或使用者)的 CRUD 操作,包含路由、JSON 處理與日誌中介軟體。並與 Node.js/Express 版本進行對比。