跳至內容

轉接器輔助工具

轉接器輔助工具提供透過統一介面與各種平台互動的無縫方式。

導入

ts
import { Hono } from 'hono'
import { env, getRuntimeKey } from 'hono/adapter'

env()

env() 函式有助於在不同執行階段擷取環境變數,而不僅限於 Cloudflare Workers 的綁定。使用 env(c) 擷取的值在每個執行階段可能有所不同。

ts
import { env } from 'hono/adapter'

app.get('/env', (c) => {
  // NAME is process.env.NAME on Node.js or Bun
  // NAME is the value written in `wrangler.toml` on Cloudflare
  const { NAME } = env<{ NAME: string }>(c)
  return c.text(NAME)
})

支援的執行階段、無伺服器平台和雲端服務

指定執行階段

您可以透過傳遞執行階段鍵作為第二個引數來指定執行階段以取得環境變數。

ts
app.get('/env', (c) => {
  const { NAME } = env<{ NAME: string }>(c, 'workerd')
  return c.text(NAME)
})

getRuntimeKey()

getRuntimeKey() 函式會傳回目前執行階段的識別碼。

ts
app.get('/', (c) => {
  if (getRuntimeKey() === 'workerd') {
    return c.text('You are on Cloudflare')
  } else if (getRuntimeKey() === 'bun') {
    return c.text('You are on Bun')
  }
  ...
})

可用的執行階段鍵

以下是可用的執行階段鍵,不可用的執行階段鍵執行階段可能受支援並標記為 other,其中一些靈感來自 WinterCG 的執行階段鍵

  • workerd - Cloudflare Workers
  • deno
  • bun
  • node
  • edge-light - Vercel Edge Functions
  • fastly - Fastly Compute
  • other - 其他不明的執行階段鍵

以 MIT 授權發布。