2024 年 09 月 11 日,Express.js 团队发布了 5.0.0 版本,这是自 2014 年以来发布的首个重要版本,但该版本还不是默认版本,而且该项目在将第 5 版指定为长期支持(LTS)版本之前,要求更多贡献者帮助"文档和生态系统的其他依赖项"。
Express.js 是 Node.js 的开源 Web 应用程序框架,因其简洁性和性能而备受推崇。根据 2024 年 StackOverflow 开发人员对最流行的 Web 框架和技术的调查,Express 作为 Web 框架仅次于 React 和 Next.js,排名第三。虽然 Node.js 和 jQuery 在其之上,但它们不是相同的框架。StackOverflow 的图表显示了 Express 的受欢迎程度如下图:
Express 5.0 版本需要 Node.js 18 及以上版本,新功能包括:
新的路径路由匹配语法,为路径字符串如何映射到服务器上运行的匹配代码提供了更大的灵活性。现在,所有匹配组表达式都必须使用正则表达式语法,新的?* 和 + 参数修改器。虽然值得欢迎,但对于某些 Express.js 4 应用程序来说,这将是一个破坏性的更改,因此在没有重大版本升级的情况下无法实现。
另一个关键变化是,如果一个 promise(异步函数)被拒绝,它会将错误转发给 Express 中间件,而不会导致应用程序崩溃。
Express.js 4 中移除的内置 app.router 对象在版本 5 中又回来了。
Express.js 是 OpenJS 基金会的一个大型项目,但资金和贡献者短缺是个问题。这也是 5.0 版本迟迟不能发布的原因之一。2023 年 1 月,一位开发人员说:"我担心 Express 不会发布 5.0 版。不仅如此,它似乎还处于维护模式,即将成为废弃软件"--不过他们补充说,它"绝对是一个定义时代的软件"。技术委员会(TC)成员道格-威尔逊(Doug Wilson)在回复中安慰说,"Express 5 已经基本完成",但事实上,距离本月发布还有 18 个月的时间。
如果代码已经完成,为什么在 npm 代码库中是 express@next 而不是 express@latest?
"我们还没有确定日期。这主要取决于我们能多快更新文档和生态系统的其他依赖项(例如 DT [DefinitelyTyped])",另一位 TC 成员韦斯-托德(Wes Todd)说。
关于类型,Todd 补充说:"我们从来没有很多人报名参加,来帮助我们完成这项工作。如果现在这种情况有所改变,我很乐意,但我们需要的不仅仅是开车来帮忙的人"。
四月份,技术委员会讨论了 Express 的资金问题,以及 OpenJS 基金会提出的想法可能带来的帮助。其他几个网络框架都有重量级赞助商,React 有 Facebook,Next.js 有 Vercel,Angular 有 Google,ASP.NET 有 Microsoft。Express 缺乏这样的支持,和许多开源项目一样,它也在寻找将其受欢迎程度转化为可持续发展的途径。
1.关注FED实验室(前端开发实验室)获取更多前端热点资讯、技术实践、面试招聘等精彩内容。
2.扫描下面二维码,加小懒好友,进全栈开发交流群,一起学习和进步。
大家都在看