很多人第一次学 Koa,会把注意力放在这些表面语法上:
const app = new Koa()app.use(...)ctx.body = ...await next()
这些当然重要,但如果你脑子里没有一张完整的巡防总图,Koa 很快就会变成一堆零碎 API。
把整个后端系统想成一座多层巡防宇宙:
外部请求飞船
│
▼
┌──────────────────────────────┐
│ 洋葱关卡巡防塔(Koa App) │
│ │
│ 第1层:日志关卡 │
│ 第2层:鉴权关卡 │
│ 第3层:参数校验关卡 │
│ 第4层:路由分发关卡 │
│ 第5层:业务处理核心舱 │
│ │
│ 然后再一层层返回外面 │
└──────────────────────────────┘
│
▼
响应返回在这个宇宙里:
- Node.js
http,像最底层航道和停泊平台。 - Koa,像把请求组织成“层层进、层层出”的巡防塔。
- 中间件,像每一层巡防关卡。
ctx,像这一次巡防任务的总卷宗。app.use(),像往巡防塔里继续加关卡。- 路由器,像航线分流图。
- 错误处理,像总控室事故回收机制。
先记住一句总纲:
Koa 不是“帮你做完一切”的重型平台
Koa 是“把请求处理组织得极其清晰”的轻量底座