Express.js 5.0 正式發(fā)布,歸來(lái)仍是斷層式第一!
9 月 11 日,Express.js 5.0 正式發(fā)布。自 2010 年開(kāi)源以來(lái),Express.js 憑借其簡(jiǎn)潔、靈活與高性能的特點(diǎn),迅速崛起并持續(xù)穩(wěn)坐 Node.js 框架領(lǐng)域的領(lǐng)先地位,目前每周下載量高達(dá) 3000 萬(wàn)次。盡管近年來(lái)其更新步伐看似放緩,但自今年初,Express.js 團(tuán)隊(duì)推出了前進(jìn)計(jì)劃,詳細(xì)描繪了 5.0、6.0 及 7.0 版本的未來(lái)藍(lán)圖。本文就來(lái)看看 Express.js 5.0 的更新內(nèi)容,以及 Express.js 的未來(lái)規(guī)劃。
注意:目前 Express.js 只在 Github 上推出了 5.0 版本,npm 包暫未更新到新版本,需要再等等。
Express.js 5.0 更新內(nèi)容
Express 5.0.0 版本的更新如下:
- 代碼改進(jìn)和錯(cuò)誤修復(fù):
移除了重復(fù)的測(cè)試用例和不必要的代碼。
修復(fù)了可能的錯(cuò)誤,例如在 res.clearCookie 方法中處理 expires 和 maxAge 參數(shù)的問(wèn)題。
- 性能優(yōu)化:
減少了重復(fù)的 CI(持續(xù)集成)運(yùn)行,提高了構(gòu)建效率。
使用了更現(xiàn)代的 JavaScript 特性,如 Array.flat 替代 array-flatten。
安全性增強(qiáng):
添加了威脅模型,提高了框架的安全性。
引入了 CodeQL 進(jìn)行靜態(tài)應(yīng)用安全測(cè)試(SAST)。
文檔和維護(hù):
更新了 Security.md 和其他文檔,提供了更清晰的安全和維護(hù)指南。
明確了問(wèn)題分類(lèi)和討論的流程。
依賴管理:
更新了多個(gè)依賴庫(kù)到最新版本,例如 encodeurl、debug、qs、cookie-signature 等。
清理了不再使用的依賴。
版本支持:
將 Node.js 的最低支持版本提升到 Node 18,以確保與最新的 Node.js 特性和性能改進(jìn)保持一致。
新特性和功能:
引入了對(duì) Node.js 22 的支持,并在 CI 中添加了相應(yīng)的測(cè)試。
恢復(fù)了對(duì) Node 21 的查詢測(cè)試。
發(fā)布流程:
改進(jìn)了發(fā)布流程,包括自動(dòng)化發(fā)布和 GitHub 權(quán)限管理。
其他:
移除了一些過(guò)時(shí)的字符串和變量使用,如 back 作為魔法字符串。
進(jìn)行了一些重構(gòu)工作,以提高代碼的可讀性和可維護(hù)性。
Express.js 未來(lái)規(guī)劃
Express 框架的更新計(jì)劃和未來(lái)發(fā)展方向如下:
- Express 6.0:
Node.js 版本支持: 將與 Node.js 的長(zhǎng)期支持(LTS)版本對(duì)齊,以便更好地支持和測(cè)試。
升級(jí)計(jì)劃: 提供更可預(yù)測(cè)的升級(jí)時(shí)間表,以便用戶規(guī)劃升級(jí)和應(yīng)對(duì)重大變更。
重大變更計(jì)劃: 明確了在 Express 上實(shí)施重大變更的計(jì)劃。
自動(dòng)化發(fā)布流程: 通過(guò) GitHub 權(quán)限管理和自動(dòng)化發(fā)布流程,提高發(fā)布效率。
中間件優(yōu)化: 移除未使用的中間件,并用 Node.js 核心功能替換某些中間件。
API 優(yōu)先: 將 Express 定位為 API 開(kāi)發(fā)的首選框架,移除與模板渲染相關(guān)的功能。
GitHub 組織結(jié)構(gòu)調(diào)整: 重構(gòu)組織結(jié)構(gòu),明確所有權(quán)和焦點(diǎn),歸檔不活躍的倉(cāng)庫(kù)。
npm 范圍管理: 使用 @express 范圍管理子包,評(píng)估現(xiàn)有包的遷移。
TypeScript 支持: 提供官方維護(hù)的 TypeScript 類(lèi)型定義。
Express Generator 重構(gòu): 針對(duì) API 開(kāi)發(fā)進(jìn)行優(yōu)化,移除 HTML 渲染模板。
- Express 7.0:
生態(tài)系統(tǒng)協(xié)作: 與 Node.js 核心團(tuán)隊(duì)合作,共同規(guī)劃和開(kāi)發(fā) Express 擁有的模塊。
Web 平臺(tái)集成: 與 Web 平臺(tái)相關(guān)的請(qǐng)求/響應(yīng)和 URL 等進(jìn)行集成。
性能優(yōu)化: 重寫(xiě)中間件以提高性能,考慮將部分功能集成到 Node.js 核心。
協(xié)作團(tuán)隊(duì): 在 Web 服務(wù)器框架團(tuán)隊(duì)中進(jìn)行協(xié)作,共同推動(dòng)框架發(fā)展。
LTS 計(jì)劃和發(fā)布時(shí)間表: 與 Node.js LTS 對(duì)齊,設(shè)定主要版本的發(fā)布時(shí)間表。
現(xiàn)代化努力: 支持現(xiàn)代框架和協(xié)議,如 GraphQL 和 GRPC。
新網(wǎng)站: 計(jì)劃推出新的官方網(wǎng)站,以更好地展示 Express 框架。