自定义 Worker
Cloudflare 适配器生成的 worker 仅导出 一个 fetch 处理程序 (opens in a new tab)。
有时您的应用程序需要暴露另一种类型的处理程序(即 一个计划任务处理程序 (opens in a new tab))或导出一个 Durable Object (opens in a new tab)。这可以通过创建自定义 worker 来实现。
自定义 worker 会复用生成的 fetch 处理程序。
创建您的自定义 Worker
以下自定义 worker 复用了生成的 fetch 处理程序并添加了一个计划任务处理程序:
// 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",
}