Featured image of post 使用 Hono 和 Cloudflare Workers 建立極速 APIFeatured image of post 使用 Hono 和 Cloudflare Workers 建立極速 API

使用 Hono 和 Cloudflare Workers 建立極速 API

了解如何使用 Hono 框架和 Cloudflare Workers 建立邊緣原生、零冷啟動 API。

將微框架​​ Hono 和 Cloudflare Workers 結合,在全球邊緣提供閃電般的快速回應。

到 2026 年,建置邊緣原生無伺服器後端已成為現代標準。本指南深入探討了為什麼「Hono + Cloudflare Workers」是一個強大的堆疊、如何初始化項目,並包含一個 TypeScript API 範例。


1. 為什麼選擇Hono和Cloudflare Workers?

傳統的 Web 框架(如 Express 或 NestJS)是在現代 Web 標準 API 出現之前設計的。因此,它們捆綁了特定於節點的 polyfill 和運行時程式碼,使得它們對於輕量級無伺服器節點來說太重了。

Hono 是從頭開始建置的超輕量級(約 14KB),並且完全依賴 Web 標準 API(例如 RequestResponsefetch)。

主堆疊的好處

  1. 零冷啟動: Cloudflare Workers 在 V8 Isolates 中執行 JavaScript,而不是啟動繁重的 Docker 容器。再加上 Hono 的佔用空間很小,您的應用程式幾乎可以立即處理請求,從而消除了冷啟動延遲。
  2. 全球邊緣分佈: 您的程式碼部署在 Cloudflare 的全球資料中心網路中。請求在距離用戶最近的實體節點處攔截和解析,確保路由時間低於 10 毫秒。
  3. 網路標準可攜性: 由於 Hono 使用標準 Web 範例(Request/Response 介面),因此您可以將相同的程式碼庫部署到 Deno、Bun、Lagon、Fastly Compute 或傳統 Node.js 伺服器上,而無需修改路由器。

2.Hono 的 API 教程

讓我們建立一個簡單的 API,其中包含針對 Cloudflare Workers 的路由、中介軟體和 JSON 處理程序。

第1步:建立一個Hono項目

使用 Hono CLI 幫助程式初始化您的工作區:

npm create hono@latest my-app
# Select "cloudflare-workers" when prompted for the template target

步驟 2:實現路由器 (src/index.ts)

用乾淨、類型化的 TypeScript 編寫邏輯:

import { Hono } from 'hono'
import { cors } from 'hono/cors'

const app = new Hono()

// Apply global CORS middleware
app.use('*', cors())

// Basic text handler
app.get('/', (c) => {
  return c.text('Hello NetGuide Edge API!')
})

// Dynamic route parameters & JSON payloads
app.get('/api/user/:id', (c) => {
  const id = c.req.param('id')

  // Extract query parameters
  const details = c.req.query('details')

  return c.json({
    success: true,
    data: {
      userId: id,
      role: 'developer',
      detailsRequested: details === 'true'
    }
  })
})

// POST request processing
app.post('/api/user', async (c) => {
  const body = await c.req.json()

  return c.json({
    message: 'User created successfully',
    receivedData: body
  }, 201)
})

export default app

第 3 步:運行和部署

使用 Wrangler(Cloudflare Workers CLI 工具)在本地測試並部署到雲端:

# Run local emulation server
npm run dev

# Deploy to global edge nodes
npm run deploy

3. 與D1資料庫集成

Cloudflare Workers 可讓您將儲存資源直接綁定到您的環境上下文。將基於 SQLite 的 D1 資料庫與 Hono 整合非常簡單:

// Define custom bindings matching wrangler.toml configuration
type Bindings = {
  DB: D1Database
}

const app = new Hono<{ Bindings: Bindings }>()

app.get('/users', async (c) => {
  // Access D1 directly through context env
  const { results } = await c.env.DB.prepare('SELECT * FROM users').all()
  return c.json(results)
})

4.結論

Hono 與 Cloudflare Workers 的結合代表了後端架構的重大轉變。透過消除複雜的伺服器配置並最大限度地減少冷啟動,該堆疊使開發人員能夠以最小的開銷在全球範圍內提供快速、安全的 API。