大家好,我是农村程序员,独立开发者,行业观察员,前端之虎陈随易。
- 关注公众号:
陈随易
,获取最新观察和思考。 - 个人网站 1️⃣:chensuiyi.me
- 个人网站 2️⃣:me.yicode.tech
如果本文能给你提供启发或帮助,欢迎动动小手指,一键三连 (点赞
、评论
、转发
),给我一些支持和鼓励,谢谢。


去年7月份,我发布了一篇文章别用 Express 和 Koa 了!。
在知乎和掘金均有不少讨论,总的来说呢,80%是持反对意见的。
后面我一琢磨,有可能是我文中没有把话说清楚,有些人以为我是贬低这个,抬高那个。
首先声明,我并无此意,而是就事论事,说事实,摆依据,分析利害,来表达我的个人观点。
如果你同意我的观点,那我们握握手,如果你不同意我的观点,那这篇文章也是我最后一次分享这个问题了,并不会想要强制改变你的想法。
我调研过很多除了 Express
和 Koa
之外的框架,最终选择 Fastify
作为我的日常框架。
所以,这里仅用我最熟悉的 Fastfiy
来作为其他优秀框架的代表,跟 Express
和 Koa
来进行一次对比,来论证我的观点:为什么我不推荐Express和Koa?
。

Fastify 有 61 个核心插件,由官方团队维护,收录了 240 个社区插件,我们能用到的一些中间件,基本都能在核心插件找到,这进一步提高了框架的统一性,稳定性。
而 Express 和 Koa,各种中间件,比如路由、JWT、缓存、跨域、文件上传等等,都散落在各处,需要我们亲自去找,去挖掘,然后再拿过来拼装,最后组合成一个 极具个人特色
的缝合怪。
这非常符合技术人的 个人英雄主义
,我曾经也以创建缝合怪而乐此不疲,当看到公司的项目在我的缝合怪身上竟然成功的运行起来,心中的喜悦难以言表。
两年前,我在家全职接单,有个项目就是 Express 搭建的,我接手维护,增加功能,修改 BUG。
好家伙,那 2 个月,是我接单以来,唯一一次看到代码就想抓狂的时刻。

大概就跟看到这个娃娃差不多,代码组织很乱,很抽象。
而我竟还要在这上面分析来龙去脉,找到问题所在,增加功能,修复 BUG。

那时,我的心里只有一个声音:得加钱
。
那到底加没加钱呢?没加。

毕竟已经谈好价格开始上手了,既然已经把屎吃到嘴里,含泪也要咽下去。
故事听完了,我想说明一个什么问题呢?那就是,大部分人,都不具备合理且良好地组装缝合怪的能力,包括我自己。
Express 和 Koa,并不是说完全不能用,自己的小网站,小博客,一些小项目,用一用挺好,挺快。

毕竟,不管黑猫白猫,能抓住老鼠,那就是好猫。
但是,一些比较大的项目,公司项目,商业项目,很多时候,并不只是为了去抓一只老鼠,而是要攻城略地,冲锋打仗的。
这个时候,为了图自己一时之乐,抄起自己的缝合怪就嘎嘎往前冲,我认为这是一种不负责任的做法。
解决问题
和 更好地解决问题
,这是两码事,有架构和生态更好,更强,更合适的框架,为什么要敬而远之呢?
你要说,我的实力很强,拼装的缝合怪就是牛逼,但我认为,这种人还是寥寥无几。
Express 和 Koa 是非常优秀的框架,为 Node.js 的布道和推广,发挥了巨大的作用,但很多时候,它们并不是做项目最合适的框架。
这就像是 2 个精神小妹、精神小伙,一般人很难驾驭,我们最终还是要好好过日子的呀。
所以呢,跳出这个 2 个框架,去看看别的框架,或许,你会发现,世界更精彩。