全书目录

第三十四篇:Hono 完全指南 —— 边缘轻骑哨站宇宙

第十二站:Hono 最常见的误区

2 分钟 722 字 第 648 / 962 个阅读单元

这一节非常重要。很多人不是不会写 Hono,而是拿着旧王朝的军规来用轻骑哨站

#误区 1:把 Hono 当成 Express 替身

如果你的脑子里只有“路由、中间件、req、res”,那你会错过 Hono 真正的价值。

Hono 的灵魂不是“语法像不像 Express”,而是:

  • Fetch 标准对象
  • 多运行时移植
  • 类型联动
  • 边缘友好

#误区 2:过度分层,硬造 Controller

Hono 官方最佳实践已经说得很直白了:尽量不要做 RoR 风格 Controller。

不是不能分文件,而是不要为了“看起来像传统 MVC”而牺牲路由旁的类型推断。

#误区 3:把中间件顺序当成无所谓

在 Hono 里,注册顺序就是军令顺序。

你把:

  • auth
  • bodyLimit
  • logger
  • secureHeaders

写乱了,行为就会乱。

#误区 4:忘记 Content-Type

尤其测试时最容易出这个问题:

  • 你明明发了 JSON 字符串
  • 但没带 Content-Type: application/json
  • 然后校验层里拿到 {}

这不是 Hono 坏,是你的文书没写制式封面。

#误区 5:想用 RPC,却不显式标状态码

如果你要吃 Hono RPC 的类型红利,尽量养成习惯:

ts
return c.json(data, 200)
return c.json(errorBody, 404)

别什么都靠默认 200,也别对 notFound() 的类型推断抱过高预期。

#误区 6:业务层过早绑定运行时私有 API

今天你在 Node 跑得很爽,明天想迁到 Workers,发现一半业务代码全焊在 req.socket 上。

那不是 Hono 不可移植,是你自己把马腿打断了。

#误区 7:route() 先挂后补

记住一句话:

先把子哨站修好,再挂到总哨站。