4.18.3 修補版本包含以下錯誤修正
修正沒有方法的路由要求。(提交)
有關此版本中所有變更的完整清單,請參閱 History.md
4.18.2 修補版本包含以下錯誤修正
修正回歸在單一路由中路由一個大型堆疊。(提交)
如需此版本中變更的完整清單,請參閱 History.md
4.18.1 修補程式版本包含下列錯誤修正
修正如果使用非常大的路由堆疊建立 Express.js 應用程式,且所有這些路由都是同步(同步呼叫 next()
),則要求處理可能會暫停的狀況。
如需此版本中變更的完整清單,請參閱 History.md。
4.18.0 次要版本包含錯誤修正和一些新功能,包括
app.get()
方法 和 app.set()
方法 現在會略過 Object.prototype
上的屬性,以取得設定值。
res.cookie()
方法 現在接受「優先順序」選項,以在 Set-Cookie 回應標頭上設定優先順序屬性。
res.cookie()
方法 現在會拒絕提供為「過期」選項的無效日期物件。
res.cookie()
方法 現在可以在明確提供 null
或 undefined
作為「maxAge」引數時運作。
從此版本開始,Express 支援 Node.js 18.x。
res.download()
方法 現在接受「根目錄」選項,以符合 res.sendFile()
。
res.download()
方法 可以提供 options
物件,而不需要提供 filename
引數,當需要預設 filename
時,可以簡化呼叫。
res.format()
方法現在會以與類型處理常式相同的參數呼叫提供的「預設」處理常式(req
、res
和 next
)。
當回應代碼設為 205 時,res.send()
方法不會嘗試傳送回應本文。
如果預先設定了某些會中斷錯誤回應呈現的回應標頭,預設錯誤處理常式現在會移除這些標頭。
狀態代碼 425 現在表示為標準的「太早」,而非「未排序的集合」。
如需此版本中變更的完整清單,請參閱 History.md。
4.17.3 修補版本包含一個錯誤修正
更新至 qs 模組 以修正解析 __proto__
屬性的問題。
如需此版本中變更的完整清單,請參閱 History.md。
4.17.2 修補版本包含下列錯誤修正
修正當提供回呼函式時,res.jsonp
中處理 undefined
的問題。
修正當啟用「json 逸出」時,res.json
和 res.jsonp
中處理 undefined
的問題。
修正處理 res.cookie()
的 maxAge
選項的無效值的問題。
更新至 jshttp/proxy-addr 模組 以使用 req.socket
取代已棄用的 req.connection
。
從此版本開始,Express 支援 Node.js 14.x。
如需此版本中變更的完整清單,請參閱 History.md。
4.17.1 修補版本包含一項錯誤修正
由於造成現有 Express 4 應用程式的回歸,已將 res.status()
API 的變更還原。
如需此版本中變更的完整清單,請參閱 History.md。
4.17.0 次要版本包含錯誤修正和一些新功能,包括
已新增 express.raw()
和 express.text()
中介軟體,以提供更原始要求負載的要求主體剖析。這在底層使用 expressjs/body-parser 模組 模組,因此目前個別需要該模組的應用程式可以切換至內建剖析器。
res.cookie()
API 現在支援 "none"
值,作為 sameSite
選項。
當啟用 "trust proxy"
設定時,req.hostname
現在支援要求中的多個 X-Forwarded-For
標頭。
從此版本開始,Express 支援 Node.js 10.x 和 12.x。
res.sendFile()
API 現在提供更立即且易於理解的錯誤,當非字串傳遞為 path
參數時。
res.status()
API 現在提供更立即且易於理解的錯誤,當 null
或 undefined
傳遞為參數時。
如需此版本中變更的完整清單,請參閱 History.md。
4.16.4 修補版本包含各種錯誤修正
修正 res.sendfile
中可能會記錄 "Request aborted"
的問題。
有關此版本中變更的完整清單,請參閱 History.md。
4.16.3 修補版本包含各種錯誤修正
修正 res.location
方法或 res.redirect
方法的網址結尾處的純文字 %
未編碼為 %25
的問題。
修正空白 req.url
值可能會導致預設 404 處理中引發錯誤的問題。
修正 express.static
重新導向回應的產生 HTML 文件,以正確包含 </html>
。
有關此版本中變更的完整清單,請參閱 History.md。
4.16.2 修補版本包含回歸錯誤修正
修正 Buffer
傳遞給 res.send
且回應中已設定 ETag
標頭時,res.send
方法中可能發生的 TypeError
。
有關此版本中變更的完整清單,請參閱 History.md。
4.16.1 修補版本包含回歸錯誤修正
更新至 pillarjs/send 模組 以修正影響 express.static
特定使用者的臨界狀況回歸問題。
有關此版本中變更的完整清單,請參閱 History.md。
4.16.0 次要版本包含安全性更新、錯誤修正、效能增強和一些新功能,包括
更新至 jshttp/forwarded 模組 以解決 漏洞。如果使用下列 API,這可能會影響您的應用程式:req.host
、req.hostname
、req.ip
、req.ips
、req.protocol
。
更新 pillarjs/send 模組 的相依項,以解決 mime
相依項中的 漏洞。如果將不受信任的字串輸入傳遞給下列 API,這可能會影響您的應用程式:res.type()
。
pillarjs/send 模組 已實作防護機制,以防止 Node.js 8.5.0 漏洞。將任何先前版本的 Express.js 與 Node.js 8.5.0(特定 Node.js 版本)搭配使用,會使下列 API 容易受到攻擊:express.static
、res.sendfile
和 res.sendFile
。
從這個版本開始,Express 支援 Node.js 8.x。
新的設定 "json escape"
可用於跳脫 res.json()
、res.jsonp()
和 res.send()
回應中的字元,這些字元可能會觸發客戶端將回應嗅探為 HTML,而不是遵循 Content-Type
。這有助於保護 Express 應用程式免於一類持續性的 XSS 攻擊。
res.download()
方法 現在接受一個選用的 options
物件。
已新增 express.json()
和 express.urlencoded()
中介軟體,以提供現成的請求主體剖析支援。這在底層使用 expressjs/body-parser 模組 模組,因此目前個別需要該模組的應用程式可以切換到內建剖析器。
express.static()
中介軟體 和 res.sendFile()
方法 現在支援在 Cache-Control
標頭上設定 immutable
指令。使用適當的 maxAge
設定此標頭,將可防止支援的網路瀏覽器在檔案仍保留在快取中時,傳送任何請求至伺服器。
pillarjs/send 模組 已更新 MIME 類型清單,以更妥善地設定更多檔案的 Content-Type
。有 70 個新的檔案副檔名類型。
如需查看此版本中變更的完整清單,請參閱 History.md。
4.15.5 修補程式版本包含安全性更新、一些次要效能強化和一個錯誤修正
更新至 jshttp/fresh 模組 以解決 漏洞。如果使用下列 API,這將會影響您的應用程式:express.static
、req.fresh
、res.json
、res.jsonp
、res.send
、res.sendfile
res.sendFile
、res.sendStatus
。
更新至 jshttp/fresh 模組 修復處理具有無效日期的修改標頭的方式,並加快條件標頭(例如 If-None-Match
)的剖析速度。
如需查看此版本中變更的完整清單,請參閱 History.md。
4.15.4 修補程式版本包含一些次要錯誤修正
修正陣列設定為 "trust proxy"
值在特定條件下遭到竄改的問題。
如需查看此版本中變更的完整清單,請參閱 History.md。
4.15.3 修補程式版本包含一個安全性更新和一些次要錯誤修正
更新 pillarjs/send 模組 的相依套件,以解決 漏洞。如果下列 API 中的 maxAge
選項傳遞了不受信任的字串輸入,可能會影響您的應用程式:express.static
、res.sendfile
和 res.sendFile
。
修復 res.set
無法將字元集新增至 Content-Type
時的錯誤。
修復 HTML 文件中缺少 </html>
。
如需查看此版本中變更的完整清單,請參閱 History.md。
4.15.2 修補版本包含一個次要的錯誤修正
修復在延伸 (預設) 查詢剖析器中,剖析以 [
開頭的鍵時發生的回歸。
如需查看此版本中變更的完整清單,請參閱 History.md。
4.15.1 修補版本包含一個次要的錯誤修正
修復與 datejs 1.x 函式庫搭配使用時發生的相容性問題,其中 express.static()
中介軟體 和 res.sendFile()
方法 會不正確地以 412 前置條件失敗回應。
如需查看此版本中變更的完整清單,請參閱 History.md。
4.15.0 次要版本包含錯誤修正、效能改善和其他次要功能新增,包括
從此版本開始,Express 支援 Node.js 7.x。
現在 express.static()
中介軟體 和 res.sendFile()
方法 支援 If-Match
和 If-Unmodified-Since
要求標頭。
更新至 jshttp/etag 模組,以產生回應的預設 ETag,當 Node.js 已 啟用 FIPS 相容加密 時,此模組會運作。
各種自動產生的 HTML 回應,例如預設的找不到和錯誤處理常式,將會回應完整的 HTML 5 文件和額外的安全性標頭。
如需此版本中變更的完整清單,請參閱 History.md。
4.14.1 修補版本包含錯誤修正和效能改善,包括
更新至 pillarjs/finalhandler 模組 修復 Express 處理具有非物件 headers
屬性的 Error
物件時發生的例外狀況。
如需此版本中變更的完整清單,請參閱 History.md。
4.14.0 次要版本包含錯誤修正、安全性更新、效能改善和其他次要功能新增,包括
從此版本開始,Express 支援 Node.js 6.x。
更新至 jshttp/negotiator 模組 修復 正規表示式阻斷服務漏洞。
res.sendFile()
方法現在接受兩個新選項:acceptRanges
和 cacheControl
。
acceptRanges
(預設為 true
),啟用或停用接受範圍要求。停用時,回應不會傳送 Accept-Ranges
標頭,並忽略 Range
要求標頭的內容。
cacheControl
(預設為 true
),啟用或停用 Cache-Control
回應標頭。停用它將忽略 maxAge
選項。
res.sendFile
也已更新,以更好地處理 Range
標頭和重新導向。
res.location()
方法 和 res.redirect()
方法 現在會對 URL 字串進行 URL 編碼,如果尚未編碼的話。
res.json()
方法 和 res.jsonp()
方法 在一般情況下的效能已獲得改善。
jshttp/cookie 模組(除了許多其他改善之外)已更新,現在 res.cookie()
方法 支援 sameSite
選項,讓您可以指定 SameSite cookie 屬性。注意:此屬性尚未完全標準化,未來可能會變更,許多客戶端可能會忽略它。
sameSite
選項的可能值為
true
,將 SameSite
屬性設定為 Strict
,以嚴格執行相同網站。false
,不設定 SameSite
屬性。'lax'
,將 SameSite
屬性設定為 Lax
,以寬鬆執行相同網站。'strict'
,將 SameSite
屬性設定為 Strict
,以嚴格執行相同網站。已修正 Windows 上的絕對路徑檢查,它在某些情況下不正確。
使用代理伺服器的 IP 位址解析已大幅改善。
req.range()
方法 選項物件現在支援 combine
選項(預設為 false
),當為 true
時,會合併重疊和相鄰的範圍,並將它們傳回,就好像它們在標頭中以這種方式指定一樣。
有關此版本中變更的完整清單,請參閱 History.md。