橙宝书
构建

Workers Runtime 与 Node.js

从 Web API、兼容日期和 Node 兼容层判断一段代码能否在 Workers 正确运行。

编辑与核验:橙宝书编辑团队 ·

BUILD进阶18 分钟最后核验:2026-08-26

核心判断

Workers 以 Web Platform APIs 为核心,不是“一台更近的 Node 服务器”。先检查 API 是否存在,再检查兼容日期,最后才考虑 polyfill。

兼容性分三类

状态含义你的动作
完整支持API 在 Workers 中实现写最小运行测试
部分支持只有部分方法或行为对照具体 API 页与限制
Stub可以 import,但调用会抛错不能把构建成功当运行成功

对于 compatibility date 为 2026-08-04 或更新的新 Worker,Node.js compatibility 与 v2 默认启用,官方建议不再添加正向 compatibility flag。旧项目不要盲改:先保留原日期、跑回归测试,再有计划地推进日期。

把 Node 代码改成边缘思维

export default {
  async fetch(request: Request): Promise<Response> {
    const url = new URL(request.url);
    const upstream = await fetch(`https://api.example.com${url.pathname}`);
    return new Response(upstream.body, upstream);
  },
};

这里使用 RequestResponseURLfetch,没有文件系统、常驻进程或跨请求共享的可变内存。

AI 代码审查顺序

  1. 搜索 fsnetchild_process、原生二进制模块与启动服务器代码。
  2. 在官方 Node compatibility 表中逐项确认,不以“能 import”作为证据。
  3. wrangler dev 实际执行成功和错误分支。
  4. 更新 compatibility date 时单独提交并记录行为变化。

继续比较运行时与工具链

  • 使用 Bun 管理依赖和运行 Wrangler 时,线上代码仍由 workerd 执行;Bun 的 Cloudflare Workers 教程专门解释这条边界。
  • Deno 与 Workers 都提供大量 Web APIs,但权限、持久化、部署与 Node 兼容并不相同;先读 Deno、Node 与 Bun 对比,再把依赖带回本页逐项验证。

完整的跨站阅读地图见相关技术文档网络

官方来源

这篇内容帮你完成目标了吗?

内测反馈只在当前浏览器生成,不会自动上传。

本页目录