[ PROMPT_NODE_24178 ]
Pages Functions API 参考
[ SKILL_DOCUMENTATION ]
# 函数 API
## EventContext
typescript
interface EventContext {
request: Request; // 传入请求
functionPath: string; // 请求路径
waitUntil(promise: Promise): void; // 后台任务 (非阻塞)
passThroughOnException(): void; // 错误时回退至静态资源
next(input?: Request | string, init?: RequestInit): Promise;
env: Env; // 绑定, 变量, 密钥
params: Record; // 路由参数 ([user] 或 [[catchall]])
data: any; // 中间件共享状态
}
**TypeScript:** 有关 `wrangler types` 设置,请参阅 [configuration.md](./configuration.md)
## 处理器
typescript
// 通用 (任何方法的后备)
export async function onRequest(ctx: EventContext): Promise {
return new Response('Any method');
}
// 方法特定 (优先级高于通用)
export async function onRequestGet(ctx: EventContext): Promise {
return Response.json({ message: 'GET' });
}
export async function onRequestPost(ctx: EventContext): Promise {
const body = await ctx.request.json();
return Response.json({ received: body });
}
// 同样支持: onRequestPut, onRequestPatch, onRequestDelete, onRequestHead, onRequestOptions
## 绑定参考
| 绑定类型 | 接口 | 配置键 | 用途 |
|--------------|-----------|------------|----------|
| KV | `KVNamespace` | `kv_namespaces` | 键值缓存, 会话, 配置 |
| D1 | `D1Database` | `d1_databases` | 关系型数据, SQL 查询 |
| R2 | `R2Bucket` | `r2_buckets` | 大文件, 用户上传, 资源 |
| Durable Objects | `DurableObjectNamespace` | `durable_objects.bindings` | 有状态协调, WebSocket |
| Workers AI | `Ai` | `ai.binding` | LLM 推理, 嵌入 |
| Vectorize | `VectorizeIndex` | `vectorize` | 向量搜索, 嵌入 |
| 服务绑定 | `Fetcher` | `services` | Worker 间 RPC |
| Analytics Engine | `AnalyticsEngineDataset` | `analytics_engine_datasets` | 事件日志, 指标 |
| 环境变量 | `string` | `vars` | 非敏感配置 |
有关 wrangler.jsonc 示例,请参阅 [configuration.md](./configuration.md)。
## 绑定
### KV
typescript
interface Env { KV: KVNamespace; }
export const onRequest: PagesFunction = async (ctx) => {
await ctx.env.KV.put('key', 'value', { expirationTtl: 3600 });
const val = await ctx.env.KV.get('key', { type: 'json' });
const keys = awa