Automatic loopback bindings via ctx.exports
The ctx.exports
API contains automatically-configured bindings corresponding to your Worker's top-level exports. For each top-level export extending WorkerEntrypoint
, ctx.exports
will contain a Service Binding by the same name, and for each export extending DurableObject
(and for which storage has been configured via a migration), ctx.exports
will contain a Durable Object namespace binding. This means you no longer have to configure these bindings explicitly in wrangler.jsonc
/wrangler.toml
.
Example:
import { WorkerEntrypoint } from "cloudflare:workers";
export class Greeter extends WorkerEntrypoint { greet(name) { return `Hello, ${name}!`; }}
export default { async fetch(request, env, ctx) { let greeting = await ctx.exports.Greeter.greet("World") return new Response(greeting); }}
At present, you must use the enable_ctx_exports
compatibility flag to enable this API, though it will be on by default in the future.
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Directory
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- © 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark