2025云栖大会,开启通往AGI的未来之旅 了解详情
写点什么

Cloudflare 向 Cloudflare Workers 添加 Node.js HTTP 服务器

  • 2025-09-23
    北京
  • 本文字数:1058 字

    阅读完需:约 3 分钟

大小:545.95K时长:03:06
Cloudflare向Cloudflare Workers添加Node.js HTTP服务器

最近,Cloudflare 在 Cloudflare Workers 中实现了node:http客户端和服务器API,使开发者可以将现有的 Node.js 应用程序迁移到无服务器计算平台。这些 HTTP API 使 Express.js、Koa.js 等流行的 Node.js 框架能够在 Workers 上运行。

 

Cloudflare 首席系统工程师Yagiz NizipliJames M Snell写道:

 

这一重大更新将大家熟悉的 Node.js HTTP 接口带到了边缘,使人们能够在全球范围内部署现有的 Express.js、Koa 以及其他 Node.js 应用程序,实现零冷启动和自动扩展,并显著降低用户延迟——所有这些都不需要重写代码库。

 

为了支持 HTTP 客户端 API,Cloudflare 基于 Workers 使用的本地标准 fetch() API 重新实现了核心 node:http API,保持了 Node.js 的兼容性,而又不会对性能产生明显的影响。该封装方法支持标准 HTTP 方法、请求和响应头、请求和响应体、流式响应和基本身份验证。

 

不过,该方法是托管的,无法支持 Node.js API 的子集。当前,它有一个限制(也是与标准 Node.js 环境的一个差异)是,虽然提供了 Agent API,但是作为 no-op,不支持尾部字符串、早期提示和 1xx 响应。此外,由于 Workers 自动处理 TLS,所以不支持 TLS 特有的选项。

 

这一更新得到了社区的积极反馈,不过也有一些用户指出,这个功能早就应该引入了。Himanshu Kumar 在 X 上评论道:

 

这为无服务器 Node.js 带来了激动人心的可能性。更平滑的过渡意味着更广泛的采用和更快速的创新。

 

由于 Cloudflare Workers 在无服务器环境中运行,不提供 TCP 直连,所有网络操作都由 Workers 运行时之外的服务管理,包括处理连接池、保持连接活跃状态和管理出站 IP。Nizipli 和 Snell 解释道:

 

服务器端实现是特别有趣的部分。由于 Workers 不能创建监听特定端口的传统 TCP 服务器,我们创建了一个桥接系统,将 Node.js 风格的服务器连接到 Workers 请求处理模型。

 

当开发者新建一个 HTTP 服务器并调用 listen(port)时,不是打开一个 TCP 套接字,而是将服务器注册到 Worker 的一个内部表中,作为 http.createServer 执行和传入 fetch 请求(使用端口号作为标识符)之间的桥接。然后,开发者应使用 httpServerHandler 方法进行自动集成,或使用 handleAsNodeRequest 方法进行手动集成。

 

根据文档,当使用基于端口的路由时,作为路由键,端口号可用来确定哪个服务器处理请求,允许同一 Worker 中有多个服务器。

 

Cloudflare 并不是唯一在其无服务器计算平台上提供 Node.js 的超大型提供商,AWS LambdaGoogle Cloud RunAzure Functions也提供了 Node.js 运行时。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:

https://www.infoq.com/news/2025/09/cloudflare-node-http-workers/

2025-09-23 10:301

评论

发布
暂无评论

MES如何提高企业生产管理能力?

万界星空科技

数字化转型 制造业 生产管理系统 mes 万界星空科技

智能座舱时代,吕布骑上了AI「赤兔马」

脑极体

AI

WorkPlus:提升企业效率的im即时通讯平台解决方案

BeeWorks

即时通讯平台-音视频即时通讯平台就选WorkPlus

BeeWorks

智能座舱时代,吕布骑上了AI「赤兔马」

白洞计划

AI 智能汽车

ShardingSphere Proxy 适配 MySQL addBatch/executeBatch 数组结果实战

端小强

ShardingSphere

项目管理中,范围管理和需求管理的区别

易成研发中心

需求管理 需求管理软件

Go语言中json序列化的一个小坑,建议多留意一下

左诗右码

IM即时通讯平台哪家好?选择WorkPlus行业领先的解决方案

BeeWorks

鸿蒙NEXT开发案例:二维码的生成与识别

zhongcx

鸿蒙

什么是真正的低代码?

codebee

低代码

为什么对标准的要求会越来越低

Bruce Talk

系统思考 System Thinking

JetBrains IntelliJ IDEA 2024.3 (macOS, Linux, Windows) - 领先的 Java 和 Kotlin IDE

sysin

JetBrains IDEA

2024年最受欢迎的8款HR人事薪酬系统评测

易成研发中心

地平线 bev_cft_efficientnetb3 参考算法-v1.2.1

地平线开发者

自动驾驶 算法

为什么企业应该选择WorkPlus作为即时通讯平台?

BeeWorks

WorkPlusIM即时通讯平台:构建生态化的全方位办公解决方案

BeeWorks

即时通讯平台-企业IM软件|WorkPlus专注于政企办公的im即时通讯平台

BeeWorks

Cloudflare向Cloudflare Workers添加Node.js HTTP服务器_后端_Renato Losio_InfoQ精选文章