教程 hono tutorial

Hono 是什么

Hono 是一个小巧、快速、基于 Web Standards 的 Web 框架。它的核心模型围绕 Fetch API、Request、Response 和中间件展开,因此同一套业务代码可以在多个 JavaScript 运行时中复用。

官方文档把 Hono 描述为可以运行在 Cloudflare Workers、Fastly Compute、Deno、Bun、Vercel、Netlify、AWS Lambda、Lambda@Edge 和 Node.js 等环境中的框架。Node.js 并不是 Hono 最早的设计目标,但可以通过适配器运行。

核心特点

特点 说明
Web 标准优先 使用 Fetch API、Request、Response 等标准对象组织应用。
多运行时 核心路由和中间件代码可迁移到 Workers、Node.js、Bun、Deno 等平台。
体积小 框架内核简洁,适合 API、边缘函数和轻量服务。
TypeScript 友好 支持为环境变量、路由参数、验证结果和 RPC 客户端推导类型。
中间件生态 提供 CORS、JWT、Logger、Basic Auth、ETag 等内置中间件,也支持第三方中间件。

一个最小应用

ts
import { Hono } from 'hono'

const app = new Hono()

app.get('/', (c) => {
  return c.text('Hello Hono!')
})

export default app

这个例子没有依赖 Node.js 的 http 模块。它返回的是 Web 标准中的响应对象,因此在 Cloudflare Workers、Bun、Deno 等环境中更自然。

与 Express、Koa、Fastify 的区别

框架 常见定位 Hono 的差异
Express Node.js 生态中最经典的 Web 框架 Hono 更贴近 Fetch API,跨运行时能力更强。
Koa 轻量中间件模型,依赖 async/await Hono 也使用中间件模型,但 Context 和响应方式更接近 Web 标准。
Fastify 高性能 Node.js 框架,插件体系成熟 Hono 更强调边缘平台、多运行时和类型共享。

选择 Hono 时,不要只看性能。更重要的问题是:你的项目是否需要跨运行时、边缘部署、轻量 API,以及 TypeScript 类型共享。

什么时候不适合

  • 你需要内置 ORM、依赖注入、模块系统和大型后端架构约束。
  • 团队已经围绕 Express、NestJS 或 Fastify 建立了成熟基础设施。
  • 项目严重依赖 Node.js 原生中间件,且不打算迁移到 Fetch API 思维。

Hono 的学习成本不高,但生产项目仍然需要补齐日志、错误追踪、配置、鉴权、数据库连接和测试策略。