2026-10-02 08:26:07 作者:大讲堂
2010年,Node.js诞生才刚满一年,整个社区还在摸索JS写后端到底能做成什么样。TJ Holowaychuk扔出了一个不到一千行代码的小项目,起名叫Express。
没人想到,这个玩具一样的迷你框架,会统治后端JS赛道整整十几年。
从个人作品到全球后端基础设施
早期Node.js的原生HTTP模块太原始了,想写个路由要自己拼字符串,想处理个表单数据要自己解析流。Express一出来,直接把最常用的能力封装好了,还留足了扩展空间。一开始就是TJ一个人维护,没想到涨星速度比当时任何Node项目都快。
2010年GitHub Express 0.1.0版本提交记录
后来TJ把项目捐给了社区,现在归OpenJS基金会管,到今天,npm上的累计下载量早就破万亿了,月活下载稳定在3亿次以上。哪怕是现在各种新框架冒出来,只要你用Node.js写HTTP服务,十有六七要么直接用Express,要么底层跑的就是Express。
NestJS默认的后端引擎就是Express,就连很多Serverless厂商的Node运行环境,官方示例都是用Express写的。说实话,这生命力真的少见。很多同年代的框架早就没人提了,Express还活的好好的。
核心逻辑:轻量和灵活,才是最长远的护城河
很多人刚接触Express会奇怪,它怎么什么都不带?没有默认ORM,没有默认认证方案,连模板引擎都要自己装。这其实就是它最聪明的地方。Express从一开始就把自己定位成HTTP请求处理的薄中间层,不抢上层生态的饭。
它的核心就是那套中间件模型:进来一个请求,顺着你定义的中间件栈一路走下去,每个中间件可以改请求、发响应、或者调用下一个中间件。路由本身就是一种特殊的中间件。
Express.js中间件请求处理流程图
这个设计太灵活了。你要加日志?插个日志中间件进去。要加身份验证?插个JWT中间件。要做静态文件服务?官方自带一个就够了。小项目可以只用三个中间件跑通整个接口,大公司可以把中间件分层,封装成自己的开发框架,怎么玩都行。
对比当年同期的全栈框架,把所有东西都给你打包好,看起来上手快,等你要改点东西的时候才发现到处都是捆绑。Express反过来,给你钉子锤子,你想搭木屋还是摩天大楼,自己说了算。
不过话说回来,灵活也有灵活的坑。我见过不少创业项目,赶工期的时候随便堆功能,最后整个项目的中间件嵌套得像俄罗斯套娃,新人接手根本看不懂,重构成本比重写还高。还有不少老的第三方中间件,早就停止维护了,挂着安全漏洞也没人修,很多老项目还在跑,这都是隐形的风险。
放到产业层面看,最近十年BFF架构流行起来之后,Express直接成了前端团队搭BFF层的首选。前端本来就熟悉JS,不用学新语言,用Express几个小时就能搭出来一个聚合后端接口的BFF,适配不同端的需求,这个门槛真的太低了。很多创业公司的MVP,原型产品,全都是这么出来的,省下了好多找后端工程师的成本。
未来三年:Express会慢慢退出舞台吗?
未来三年:Express会慢慢退出舞台吗?
最近这两年,Fastify凭借更高的性能、更现代的设计、原生TypeScript支持,抢了不少新项目的份额。还有Deno生态的新框架,Next.js的API路由,也都在尝试换不同的底层引擎。很多人说,Express老了,该被淘汰了。
真是这样吗?我看不见得。
首先是存量太大了。全球几十万甚至几百万个项目跑在Express上,替换的成本足够高,除非整体重构,不然没人会闲的没事把整个底层框架换掉。上层生态也早就绑定死了,NestJS虽然支持Fastify,但大部分开发者还是默认用Express,各种第三方扩展都是先适配Express,再考虑别的选项。
它就像当年的jQuery,现在很少有开发者直接写jQuery了,但很多老项目、很多旧的业务系统底层还是它,死不了,也不会轻易被替换。
当然,问题也确实摆在台面上。整个项目主要靠志愿者维护,资金投入不多,核心版本更新的速度确实比Fastify这类后起之秀慢不少。很多新的特性,比如原生支持JSON流、更快的路由匹配,都要社区自己做第三方包,官方跟进很慢。
未来三到五年会是什么格局?我觉得,Express不会消失,它会慢慢从开发者日常写代码的第一层,退到Node.js后端生态的底层。以后更多的新项目会选Fastify或者别的新框架,但Express依然会占一半以上的市场份额,作为整个Node生态的基础设施,继续跑着全球大半的Node HTTP服务。
它早就已经完成了自己的历史使命——把JS写后端的门槛拉到足够低,让整个Node.js生态能滚起来,这就够了。
免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:Express:从迷你原型到统治后端十几年的Node.js基础设施
文章链接:https://lfdjt.com/info_23_23582.html