Cloudflare Workers:运行环境与 Response 对象
记录 Cloudflare Workers 的 Web 标准运行时,以及 Response 对象为什么不需要 import。
📌 整理来源:Cloudflare Workers 官方文档(developers.cloudflare.com/workers)、WinterCG 规范(wintercg.org) — 2026 年 6 月
一、Response 从哪里来#
官方文档:Cloudflare Workers Runtime APIs — Response
Response 是 Web 标准 Fetch API 的一部分(fetch.spec.whatwg.org),在浏览器和 Cloudflare Workers 的运行时环境中都是全局内置的,不需要 import,直接用就行。
二、必须用 new Response 吗#
Cloudflare Workers 的 fetch 处理函数必须返回一个 Response 对象(或 Promise<Response>),否则会报错。但不一定非得用 new Response,有几种等效写法:
// ✅ 1. 最常用:new Responsereturn new Response("Hello World!");
// ✅ 2. 带状态码和 headersreturn new Response("Not Found", { status: 404 });
// ✅ 3. 返回 JSON(静态方法,自动设置 Content-Type: application/json)return Response.json({ ok: true });
// ✅ 4. 重定向return Response.redirect("https://example.com", 301);
// ✅ 5. 转发别的请求的响应const res = await fetch("https://api.example.com/data");return res; // fetch() 返回的本身就是 Response
// ❌ 不行:返回普通字符串return "Hello"; // 报错三、Cloudflare Workers ≠ Node.js#
官方文档:Workers Runtime 说明
Cloudflare Workers 运行在自己的 Runtime,叫做 workerd,它基于 V8 引擎(和 Chrome/Node 一样),但模拟的是浏览器环境,而不是 Node 环境。
Chrome 浏览器 → V8 + Web APIs (fetch, Response, Request...)Node.js → V8 + Node APIs (fs, path, http, Buffer...)Cloudflare Workers → V8 + Web APIs (和浏览器更像)四、在 Workers 里有什么、没什么#
| ✅ 有(浏览器标准 API) | ❌ 没有(Node.js 专属) |
| fetch()、Request、Response | fs(文件系统) |
| URL、URLSearchParams | path |
| crypto(Web Crypto API) | process.env(用 env 参数代替) |
| TextEncoder / TextDecoder | require()(用 ESM import 代替) |
| setTimeout(有限制) | http / net / stream 等 Node 核心模块 |
五、为什么这样设计:WinterCG 标准#
官方文档:WinterCG 规范(wintercg.org) Cloudflare Workers 跑在边缘节点(全球 300+ 个数据中心),追求极致冷启动速度。Node.js 太重,浏览器 Web API 更轻量、标准化,所以选择对齐浏览器标准。 这个标准现在也叫 WinterCG(Web-interoperable Runtimes Community Group),Deno、Bun 也在往这个方向靠拢。
| Runtime | 标准对齐方向 |
| Cloudflare Workers(workerd) | Web APIs(WinterCG) |
| Deno | Web APIs(WinterCG) |
| Bun | Web APIs + Node.js 兼容层 |
| Node.js | Node.js APIs(非 WinterCG) |
六、常见开发注意事项#
完整 API 参考:Cloudflare Workers Runtime APIs
- 环境变量:不用
process.env,而是通过export default { fetch(request, env) {} }的env参数访问,在wrangler.toml中配置 - KV 存储:Workers KV 文档(全局低延迟键值存储,替代部分数据库需求)
- Durable Objects:Durable Objects 文档(有状态的边缘计算,适合需要一致性的场景)
- 限制:单个 Worker 请求 CPU 时间上限 50ms(免费)/ 30s(付费),不适合长时间计算任务
🗓️ 文档整理时间:2026 年 6 月 | 来源:Cloudflare Workers 官方文档 / WinterCG 规范