自定义 Worker
Cloudflare 适配器生成的 worker 仅导出了 fetch 处理器 (opens in a new tab)。
有时您的应用需要暴露其他类型的处理器(例如 scheduled 处理器 (opens in a new tab))或导出 Durable Object (opens in a new tab)。这可以通过创建自定义 worker 来实现。
自定义 worker 会复用生成的 fetch 处理器。
创建自定义 Worker
以下自定义 worker 复用了生成的 fetch 处理器并添加了 scheduled 处理器:
// custom-worker.ts
// @ts-ignore `.open-next/worker.ts` 是在构建时生成的
import { default as handler } from "./.open-next/worker.js";
export default {
fetch: handler.fetch,
async scheduled(event) {
// ...
},
} satisfies ExportedHandler<CloudflareEnv>;
// 仅当您的应用使用 DO Queue 和 DO Tag Cache 时需要重新导出
// 详情参见 https://opennext.js.org/cloudflare/caching
// @ts-ignore `.open-next/worker.ts` 是在构建时生成的
export { DOQueueHandler, DOShardedTagCache } from "./.open-next/worker.js";
查看 适配器仓库中的示例 (opens in a new tab)。
更新 wrangler 配置中的入口点
// wrangler.jsonc
{
- "main": "./.open-next/worker.js"
+ "main": "./path/to/custom-worker.ts",
}