[ PROMPT_NODE_23986 ]
Bindings API 参考
[ SKILL_DOCUMENTATION ]
# 绑定 API 参考
## TypeScript 类型
Cloudflare 通过 `npx wrangler types` 生成绑定类型。这会创建 `.wrangler/types/runtime.d.ts` 文件,其中包含你的 Env 接口。
### 生成的 Env 接口
运行 `wrangler types` 后,TypeScript 即可识别你的绑定:
typescript
interface Env {
// 来自 wrangler.jsonc 绑定
MY_KV: KVNamespace;
MY_BUCKET: R2Bucket;
DB: D1Database;
MY_SERVICE: Fetcher;
AI: Ai;
// 来自 vars
API_URL: string;
// 来自 secrets (通过 wrangler secret put 设置)
API_KEY: string;
}
### 绑定类型
| 配置 | TypeScript 类型 | 包 |
|--------|-----------------|---------|
| `kv_namespaces` | `KVNamespace` | `@cloudflare/workers-types` |
| `r2_buckets` | `R2Bucket` | `@cloudflare/workers-types` |
| `d1_databases` | `D1Database` | `@cloudflare/workers-types` |
| `durable_objects.bindings` | `DurableObjectNamespace` | `@cloudflare/workers-types` |
| `vectorize` | `VectorizeIndex` | `@cloudflare/workers-types` |
| `queues.producers` | `Queue` | `@cloudflare/workers-types` |
| `services` | `Fetcher` | `@cloudflare/workers-types` |
| `ai` | `Ai` | `@cloudflare/workers-types` |
| `browser` | `Fetcher` | `@cloudflare/workers-types` |
| `analytics_engine_datasets` | `AnalyticsEngineDataset` | `@cloudflare/workers-types` |
| `hyperdrive` | `Hyperdrive` | `@cloudflare/workers-types` |
| `rate_limiting` | `RateLimit` | `@cloudflare/workers-types` |
| `workflows` | `Workflow` | `@cloudflare/workers-types` |
| `mtls_certificates` / `vars` / `text_blobs` / `data_blobs` | `string` | 内置 |
| `wasm_modules` | `WebAssembly.Module` | 内置 |
## 访问绑定
### 方法 1: fetch() 处理程序 (推荐)
typescript
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise {
const value = await env.MY_KV.get('key');
return new Response(value);
}
}
**原因:** 类型安全,符合 Workers API,支持 ctx 用于 waitUntil/passThroughOnException。
### 方法 2: Hono 框架
typescript
import { Hono } from 'hono';
const app = new Hono();
app.get('/', async (c) => {
const value = await c.env.MY_KV.get('key');
return c.json({ value });
});
export default app;
**原因:** c.env 自动类型化,对于路由密集的应用非常便捷。
### 方法 3: 模块化 Workers (旧版)
typescript
export async function handleRequest(request: Request, env: Env): Promise {
const value = await env.MY_KV.get('key');
return new R