9 月 11 日,Express.js 5.0 正式发布。自 2010 年开源以来,Express.js 凭借其简洁、灵活与高性能的特点,迅速崛起并持续稳坐 Node.js 框架领域的领先地位,目前每周下载量高达 3000 万次。尽管近年来其更新步伐看似放缓,但自今年初,Express.js 团队推出了前进计划,详细描绘了 5.0、6.0 及 7.0 版本的未来蓝图。本文就来看看 Express.js 5.0 的更新内容,以及 Express.js 的未来规划。
注意:目前 Express.js 只在 Github 上推出了 5.0 版本,npm 包暂未更新到新版本,需要再等等。
Express.js 5.0 更新内容
Express 5.0.0 版本的更新如下:
- 代码改进和错误修复:
移除了重复的测试用例和不必要的代码。
修复了可能的错误,例如在 res.clearCookie 方法中处理 expires 和 maxAge 参数的问题。
- 性能优化:
减少了重复的 CI(持续集成)运行,提高了构建效率。
使用了更现代的 JavaScript 特性,如 Array.flat 替代 array-flatten。
安全性增强:
添加了威胁模型,提高了框架的安全性。
引入了 CodeQL 进行静态应用安全测试(SAST)。
文档和维护:
更新了 Security.md 和其他文档,提供了更清晰的安全和维护指南。
明确了问题分类和讨论的流程。
依赖管理:
更新了多个依赖库到最新版本,例如 encodeurl、debug、qs、cookie-signature 等。
清理了不再使用的依赖。
版本支持:
将 Node.js 的最低支持版本提升到 Node 18,以确保与最新的 Node.js 特性和性能改进保持一致。
新特性和功能:
引入了对 Node.js 22 的支持,并在 CI 中添加了相应的测试。
恢复了对 Node 21 的查询测试。
发布流程:
改进了发布流程,包括自动化发布和 GitHub 权限管理。
其他:
移除了一些过时的字符串和变量使用,如 back 作为魔法字符串。
进行了一些重构工作,以提高代码的可读性和可维护性。
Express.js 未来规划
Express 框架的更新计划和未来发展方向如下:
- Express 6.0:
Node.js 版本支持: 将与 Node.js 的长期支持(LTS)版本对齐,以便更好地支持和测试。
升级计划: 提供更可预测的升级时间表,以便用户规划升级和应对重大变更。
重大变更计划: 明确了在 Express 上实施重大变更的计划。
自动化发布流程: 通过 GitHub 权限管理和自动化发布流程,提高发布效率。
中间件优化: 移除未使用的中间件,并用 Node.js 核心功能替换某些中间件。
API 优先: 将 Express 定位为 API 开发的首选框架,移除与模板渲染相关的功能。
GitHub 组织结构调整: 重构组织结构,明确所有权和焦点,归档不活跃的仓库。
npm 范围管理: 使用 @express 范围管理子包,评估现有包的迁移。
TypeScript 支持: 提供官方维护的 TypeScript 类型定义。
Express Generator 重构: 针对 API 开发进行优化,移除 HTML 渲染模板。
- Express 7.0:
生态系统协作: 与 Node.js 核心团队合作,共同规划和开发 Express 拥有的模块。
Web 平台集成: 与 Web 平台相关的请求/响应和 URL 等进行集成。
性能优化: 重写中间件以提高性能,考虑将部分功能集成到 Node.js 核心。
协作团队: 在 Web 服务器框架团队中进行协作,共同推动框架发展。
LTS 计划和发布时间表: 与 Node.js LTS 对齐,设定主要版本的发布时间表。
现代化努力: 支持现代框架和协议,如 GraphQL 和 GRPC。
新网站: 计划推出新的官方网站,以更好地展示 Express 框架。