全书目录

第三十六篇:Koa 完全指南 —— 洋葱关卡巡防宇宙

第八章:Koa 和 Express / Fastify / NestJS 到底差在哪

3 分钟 934 字 第 691 / 962 个阅读单元

这部分不要死记结论,要看它们分别像什么。

技术 在宇宙里像什么 核心气质 你什么时候选它
Koa 洋葱关卡巡防塔 极薄、优雅、手工可控 你想自己排布中间件与架构
Express 老牌城门岗亭 经典、熟悉、生态历史深 你有大量 Node 旧资产或熟悉 req/res
Fastify 高速安检枢纽 性能导向、插件和 schema 很强 你要高吞吐、强约束 API 工程化
NestJS 正规军司令部 模块化、DI、装饰器、组织纪律强 你要大型团队协作和企业级结构化
#1. Koa vs Express

它们关系很近,因为 Koa 本来就出自 Express 团队。

但差别非常明确:

  • Express 更像“经典 middleware + req / res 世界”
  • Koa 更像“基于 async/await 的洋葱式 middleware 世界”

你可以粗暴记成:

text
Express:一路往前传
Koa:先往里,再往外

Koa 最大的体验升级在这几件事:

  • await next() 让上下游逻辑更自然
  • 错误传播比 callback 时代清爽
  • ctx 把 request/response 收在一个对象里,心智更整齐

但 Express 有自己的强项:

  • 历史生态极其庞大
  • 老项目多
  • 团队熟悉度高
#2. Koa vs Fastify

Fastify 不只是“另一个 Node Web 框架”。

它更强调:

  • 生命周期 hooks
  • schema 校验
  • 插件封装
  • 性能
  • 序列化优化

所以:

  • Koa 更像手工巡防塔底座
  • Fastify 更像高度工程化的高速安检枢纽

如果你想精细掌握中间件和请求流转,Koa 很舒服。
如果你更要:

  • 性能
  • schema-first
  • 插件化边界
  • 明确的生命周期

Fastify 往往更合适。

#3. Koa vs NestJS

这俩其实不在一个重量级上。

NestJS 关注的是:

  • 模块
  • 控制器
  • Provider
  • DI
  • Guard
  • Interceptor
  • 大团队组织结构

Koa 关注的是:

  • 请求怎么穿过一串中间件
  • 上下游怎么清晰协作
  • HTTP 处理怎么保持轻和可控

一句话:

text
Koa 是底座
NestJS 是制度

如果你要的是一座可以完全自己设计巡防线路的塔,选 Koa。
如果你要的是一整套司令部编制、文书系统、调度制度,选 NestJS。