Skip to content
返回部署

部署 Hono 应用

超轻量边缘优先 Web 框架,部署到 Cloudflare Workers、Vercel Edge、Deno 或 Bun。

平台进阶

为什么

Hono 是 14KB Web 框架,为边缘运行时设计,零依赖,TypeScript 优先。在 Cloudflare Workers、Deno、Bun、Node 上一致运行,是最可移植的边缘框架。

平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。

何时使用

边缘 API、webhook 和 Workers/Deno/Bun 轻量后端用 Hono。边缘部署或亚毫秒冷启动重要时优于 Express。

如何做

1. 构建 — Hono 无需构建步骤,直接在边缘运行时运行 2. Cloudflare Workers — wrangler deploy,用 Hono 的 CF 适配器 3. Vercel Edge — export const config = { runtime: "edge" },Hono 处理 Request 4. Deno — deno run --allow-net server.ts,无需构建 5. Bun — bun run server.ts,Hono 最快 JS 运行时 6. Node — @hono/node-server 适配器传统部署 7. 中间件 — app.use() 边缘鉴权、日志、CORS

示例

// src/index.ts — Hono 应用(运行时无关) import { Hono } from "hono"; import { cors } from "hono/cors"; const app = new Hono(); app.use("*", cors()); app.get("/", (c) => c.json({ message: "Hello from Hono" })); app.post("/api/webhook", async (c) => { const body = await c.req.json(); return c.json({ received: true }); }); export default app; // CF Workers、Vercel Edge、Deno、Bun 通用 // wrangler.toml — Cloudflare Workers name = "my-hono-api" main = "src/index.ts" compatibility_date = "2024-01-01" // 部署:npx wrangler deploy // Vercel:export default app(自动检测为边缘)

常见问题

  • ⚠边缘无 Node API — Hono 用 Web 标准 API,Workers 无 fs/process
  • ⚠body 解析失败 — 忘记 await c.req.json(),body 是一次性流
  • ⚠中间件类型错误 — 用 Variables 类型泛型类型化 app 上下文

最佳实践

  • ✓用 Hono 内置验证器(zod-validator)边缘类型安全请求解析
  • ✓开发测试用 Bun,生产用 Cloudflare Workers — 同代码,每环境最佳运行时
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答