Cloudflare
操作指南
自定义 Worker

自定义 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",
}