NickLin
← 博客

把 Express 重写成 Fastify:性能与可维护性双赢

12 分钟 · 2026-06

Express 陪我们走了很多年,但它的中间件是串行、无类型的,大型项目里很容易出现「谁改了 res 上的字段」这类问题。Fastify 用 schemas 驱动校验与序列化,路由定义本身就是文档。

迁移不必一步到位。我通常先把入口换成 Fastify,用兼容层把老中间件包一层,再按路由逐个重写。插件系统让「数据库连接」「鉴权」「日志」都能以可组合的方式挂载,比散落在 app.use 里清晰得多。

性能上,Fastify 的 JSON 序列化用的是代码生成,确实更快;但更值钱的是它逼着你把契约写清楚——schema 一旦定义,前后端联调的扯皮少了一大半。