Appearance
适配器助手
🌐 Adapter Helper
Adapter Helper 通过统一界面提供了一种与各种平台无缝交互的方式。
🌐 The Adapter Helper provides a seamless way to interact with various platforms through a unified interface.
导入
🌐 Import
ts
import { Hono } from 'hono'
import { env, getRuntimeKey } from 'hono/adapter'env()
env() 函数便于在不同的运行时环境中检索环境变量,不仅限于 Cloudflare Workers 的绑定。使用 env(c) 检索到的值在每个运行时可能不同。
🌐 The env() function facilitates retrieving environment variables across different runtimes, extending beyond just Cloudflare Workers' Bindings. The value that can be retrieved with env(c) may be different for each runtime.
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)
})支持的运行时、无服务器平台和云服务:
🌐 Supported Runtimes, Serverless Platforms and Cloud Services:
- Cloudflare Workers
wrangler.tomlwrangler.jsonc
- Deno
Deno.env.env文件
- Bun
Bun.envprocess.env
- Node.js
process.env
- Vercel
- AWS Lambda
- Lambda@Edge 的 Lambda 环境变量 不被支持,你需要使用 Lambda@Edge 事件 作为替代。
- Fastly Compute 在 Fastly Compute 上,你可以使用 ConfigStore 来管理用户定义的数据。
- Netlify 在 Netlify 上,你可以使用 Netlify Contexts 来管理用户定义的数据。
指定运行时
🌐 Specify the runtime
你可以通过将运行时键作为第二个参数传递来指定运行时以获取环境变量。
🌐 You can specify the runtime to get environment variables by passing the runtime key as the second argument.
ts
app.get('/env', (c) => {
const { NAME } = env<{ NAME: string }>(c, 'workerd')
return c.text(NAME)
})getRuntimeKey()
getRuntimeKey() 函数返回当前运行时的标识符。
🌐 The getRuntimeKey() function returns the identifier of the current runtime.
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')
}
...
})可用运行时密钥
🌐 Available Runtimes Keys
以下是可用的运行时密钥,不可用的运行时密钥可能会得到支持并标记为 other,其中一些灵感来源于 WinterCG 的运行时密钥:
🌐 Here are the available runtimes keys, unavailable runtime key runtimes may be supported and labeled as other, with some being inspired by WinterCG's Runtime Keys:
workerd- Cloudflare Workersdenobunnodeedge-light- Vercel Edge 函数fastly- Fastly 计算other- 其他未知运行时键