Express.js 5.0 正式發布,歸來仍是斷層式第一!
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 框架。