安装和 Hello World
Hono 官方推荐使用 create-hono 创建项目。创建时可以选择目标运行时模板,例如 cloudflare-workers、nodejs、bun、deno、vercel 等。
创建项目
使用 pnpm:
pnpm create hono@latest my-hono-app
进入项目并安装依赖:
cd my-hono-app
pnpm install
pnpm dev
也可以通过参数直接指定模板:
pnpm create hono@latest my-hono-app -- --template nodejs
如果你的目标是 Cloudflare Workers,可以选择:
pnpm create hono@latest my-worker -- --template cloudflare-workers
通用 Hello World
多数 Hono 模板的核心代码都类似:
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => {
return c.text('Hello Hono!')
})
export default app
c 是当前请求的 Context。你可以用它读取请求、设置响应头、返回文本、JSON、HTML 或重定向。
Node.js Hello World
在 Node.js 中运行 Hono 需要 @hono/node-server 适配器:
import { serve } from '@hono/node-server'
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => {
return c.text('Hello Node.js!')
})
serve(app)
如果需要指定端口:
serve({
fetch: app.fetch,
port: 8787,
})
Node.js 模板通常会把开发命令写在 package.json 中:
{
"scripts": {
"dev": "tsx watch src/index.ts"
}
}
Node.js 版本要求
Hono 的 Node.js 适配器依赖较新的 Web API 能力。官方 Node.js 指南要求:
| Node.js 主版本 | 最低小版本 |
|---|---|
| 18.x | 18.14.1+ |
| 19.x | 19.7.0+ |
| 20.x | 20.0.0+ |
实际项目中建议直接使用当前维护中的 LTS 或更新版本。
目录结构示例
Node.js 项目可以从简单结构开始:
my-hono-app/
├─ package.json
├─ tsconfig.json
└─ src/
└─ index.ts
当路由变多时,再拆分为:
src/
├─ index.ts
├─ routes/
│ ├─ users.ts
│ └─ posts.ts
├─ middleware/
│ └─ auth.ts
└─ lib/
└─ response.ts
先保持结构简单。只有当路由、鉴权、数据库访问等逻辑增长到难以阅读时,再拆模块。
相关内容
- Hono 是什么 介绍 Hono 的定位、核心特点、Web Standards 思路、多运行时能力,以及它与传统 Node.js Web 框架的差异。
- 运行时选择 对比 Hono 在 Node.js、Cloudflare Workers、Bun、Deno 等运行时中的入口写法、部署方式和适用场景。
- 路由基础 学习 Hono 的 GET、POST、动态参数、通配符、路由分组和模块化路由写法。
- Context 详解 介绍 Hono Context 的 req、json、text、html、redirect、header、status、set、get 等常用 API。
- 中间件机制 学习 Hono 中间件的执行顺序、自定义中间件写法、路径匹配、next 调用和常见使用场景。
- 错误处理 学习 Hono 中的 notFound、onError、HTTPException、自定义错误响应和接口错误设计。