首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >10 分钟把你的 Express 应用迁移到 Cloudflare Workers

10 分钟把你的 Express 应用迁移到 Cloudflare Workers

作者头像
Immerse
发布2026-07-13 19:20:22
发布2026-07-13 19:20:22
250
举报
文章被收录于专栏:沉浸式AI沉浸式AI

大家好,我是 Immerse

专注分享 AI 玩法独立开发AI 出海的 AGI 实践者,更多干货欢迎关注公众号 #沉浸式AI 或访问 yaolifeng.com


传统 Node.js 应用上线需要多少基础设施?

一个 Express 服务本地跑起来很简单,但要让它安全稳定地运行在生产环境,你得配 Nginx 反向代理、上 PM2 或 systemd 管进程、打包 Docker 镜像——然后还得时刻有一台服务器开着,不管有没有请求。

但用户量上来以后,你得加负载均衡、再起多台服务器来分摊压力,成本直线上升,而且低峰期那些空闲机器照常计费。

Cloudflare Workers 换了个思路。

不是"让服务器更高效",而是"干掉永远在线的服务器"。

Cloudflare Worker 是啥?

最简的 Worker 就是一个 JavaScript bundle,导出一个 fetch handler:

代码语言:javascript
复制
export default {
    async fetch(request: Request): Promise<Response> {
        return new Response('Hello World');
    },
};

没有 app.listen()——因为没有一台服务器在持续监听端口。

请求来了 Workers 才执行代码,跑完就回收。这也是它叫 serverless compute 的原因。

Cloudflare Worker 概念示意
Cloudflare Worker 概念示意

Cloudflare Worker 概念示意

四个优势

成本变了

传统模式按"机器开着"付费,Workers 按"请求来了"付费。

没有请求的时候,不产生任何计算费用。对于流量波动大或还在早期验证阶段的产品来说,这直接降低了一些成本。

启动速度差了两个数量级

Workers 跑在 V8 isolates 里,不是容器。

一个 isolate 的冷启动比 Node.js 容器或虚拟机快约 100 倍。这意味着用户几乎感知不到冷启动延迟。

延迟来自距离,而不是算力

Cloudflare 的网络覆盖全球 330+ 城市,距 95% 的互联网用户不到 50 毫秒。

你的 Worker 同时部署在所有节点上,用户请求始终走最近的节点处理。

全球部署架构示意
全球部署架构示意

全球部署架构示意

没有服务器要管

说到部署:

代码语言:javascript
复制
npx wrangler deploy

跑完这行命令,你的代码已经在全球 330+ 个节点上运行了。

没有 Dockerfile 要写,没有 Nginx 要配,没有 SSH 要连。

把 Express 迁移到 Worker

假设你有这样一个 Express 应用:

代码语言:javascript
复制
import express from 'express';
const app = express();

app.get('/api/users', (req, res) => {
    res.json([{ id: 1, name: 'Alice' }]);
});

app.post('/api/users', (req, res) => {
    // 创建用户
    res.status(201).json({ id: 2, name: 'Bob' });
});

app.listen(3000);

用 Hono 改写,代码结构几乎不变:

代码语言:javascript
复制
import { Hono } from 'hono';
const app = new Hono();

app.get('/api/users', c => {
    return c.json([{ id: 1, name: 'Alice' }]);
});

app.post('/api/users', c => {
    // 创建用户
    return c.json({ id: 2, name: 'Bob' }, 201);
});

export default app;

差异很小:req/res 换成 Hono 的 c 上下文对象,去掉 app.listen(),直接导出 app

Hono 会自动把它包装成 Worker 期望的 fetch handler。

部署验证:

代码语言:javascript
复制
npx wrangler deploy

终端会输出你的 Worker 上线 URL,直接在浏览器打开就能看到效果。

不止 API

Workers 能做的事情远不止返回 JSON。它可以渲染 HTML、跑 React,也支持全栈框架直接在 Workers 上运行——Astro、Next.js、TanStack Start、SvelteKit 都兼容。

Workers 的生态优势

Workers 的另一个好处是可以直接调用 Cloudflare 其他产品,不需要额外安装 SDK 和配置密钥:

  • Workers AI:在边缘跑推理模型
  • KV:全球分布式键值存储
  • D1:Serverless SQL 数据库
  • Hyperdrive:连接现有的 Postgres 或 MySQL
  • Queues:异步任务处理
  • Email:发送邮件

这些通过 bindings 对接,部署时声明即可。

一个坑

Workers 的 CPU 执行时间有限制——免费计划 10 秒,付费计划 30 分钟。长时间运行的计算任务不适合直接跑在 Worker 里。

如果你需要处理耗时操作,得用 Queues 拆成异步任务,或者用 Durable Objects 维持长期状态。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 非同质前端札记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Cloudflare Worker 是啥?
  • 四个优势
    • 成本变了
    • 启动速度差了两个数量级
    • 延迟来自距离,而不是算力
    • 没有服务器要管
  • 把 Express 迁移到 Worker
  • 不止 API
  • Workers 的生态优势
  • 一个坑
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档