Adapter-Helfer
Der Adapter-Helfer ermöglicht die einfache Interaktion mit verschiedenen Plattformen über eine einheitliche Schnittstelle.
Import
import { Hono } from 'hono'
import { env, getRuntimeKey } from 'hono/adapter'env()
Die Funktion env() erleichtert das Abrufen von Umgebungsvariablen über verschiedene Laufzeitumgebungen hinweg und ist nicht auf die Bindings von Cloudflare Workers beschränkt. Welche Werte mit env(c) abgerufen werden können, kann je nach Laufzeitumgebung unterschiedlich sein.
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)
})Unterstützte Laufzeitumgebungen, Serverless-Plattformen und Cloud-Dienste:
- Cloudflare Workers
wrangler.tomlwrangler.jsonc
- Deno
Deno.env.env-Datei
- Bun
Bun.envprocess.env
- Node.js
process.env
- Vercel
- AWS Lambda
- Lambda@Edge
Lambda@Edge unterstützt keine Lambda-Umgebungsvariablen. Verwende stattdessen ein Lambda@Edge-Ereignis. - Fastly Compute
Auf Fastly Compute kannst du den ConfigStore verwenden, um benutzerdefinierte Daten zu verwalten. - Netlify
Auf Netlify kannst du Netlify-Kontexte verwenden, um benutzerdefinierte Daten zu verwalten.
Laufzeitumgebung angeben
Du kannst die Laufzeitumgebung zum Abrufen der Umgebungsvariablen angeben, indem du ihren Schlüssel als zweites Argument übergibst.
app.get('/env', (c) => {
const { NAME } = env<{ NAME: string }>(c, 'workerd')
return c.text(NAME)
})getRuntimeKey()
Die Funktion getRuntimeKey() gibt den Bezeichner der aktuellen Laufzeitumgebung zurück.
app.get('/', (c) => {
if (getRuntimeKey() === 'workerd') {
return c.text('You are on Cloudflare')
} else if (getRuntimeKey() === 'bun') {
return c.text('You are on Bun')
}
...
})Verfügbare Laufzeitschlüssel
Die verfügbaren Laufzeitschlüssel sind unten aufgeführt. Laufzeitumgebungen ohne eigenen Schlüssel können ebenfalls unterstützt und als other gekennzeichnet werden. Einige Schlüssel orientieren sich an den Laufzeitschlüsseln von WinterCG:
workerd- Cloudflare Workersdenobunnodeedge-light- Vercel Edge Functionsfastly- Fastly Computeother- Andere unbekannte Laufzeitschlüssel