Cloudflare Module Worker中env变量未定义问题求助
解决Cloudflare Module Worker环境变量未定义的问题
Cloudflare Module Worker的环境变量不能直接全局访问,必须通过fetch函数的第二个参数显式接收。你的代码报错是因为没有正确获取env参数,修正方法如下:
正确代码示例
export default { async fetch(request, env) { return new Response(env.MY_ENV) } };
或者使用对象解构的写法,结构更清晰:
export default { async fetch(request, { env }) { return new Response(env.MY_ENV) } };
原因说明
Module Worker的运行时会把环境变量、运行上下文等封装在fetch方法的第二个参数中,不像传统Service Worker模式可以直接全局访问env或变量名。只有显式接收这个参数,才能访问到你在Cloudflare仪表板配置的环境变量。
如果需要在fetch函数外的代码中使用环境变量,也需要先通过fetch参数获取后传递,核心逻辑都是必须从上下文参数中获取环境变量。
内容的提问来源于stack exchange,提问作者deathangel908
相关产品推荐
相关产品推荐

