langShift

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/EchoExpress/Koa 中介軟體
JSON 處理encoding/json,結構標籤JSON.parse/stringify,body-parser
靜態檔案FileServerexpress.static
錯誤處理顯式,error 值try/catch,錯誤中介軟體

最佳實踐

  • 使用 context 傳遞請求作用域資料與取消信號
  • 輸入驗證與過濾
  • 顯式處理錯誤並返回合適狀態碼
  • 使用中介軟體實現日誌、認證、CORS 等
  • 複雜專案優先選用 Gin、Echo 等框架
  • 為處理器與中介軟體編寫測試

練習題

  1. Go 的 net/http 與 Node.js 的 HTTP 模組有何不同?
  2. 分別展示 Go 和 Node.js 如何處理 JSON 請求與回應。
  3. 為什麼實際專案中推薦使用 Gin 或 Echo,而不是只用標準庫?

專案實戰

用 Go 實作一個簡單的 RESTful API,支援資源(如任務或使用者)的 CRUD 操作,包含路由、JSON 處理與日誌中介軟體。並與 Node.js/Express 版本進行對比。