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()
メソッドは、「priority」オプションを受け入れるようになり、Set-CookieレスポンスヘッダーにPriority属性を設定できるようになりました。
res.cookie()
メソッドは、「expires」オプションとして無効なDateオブジェクトが提供された場合に拒否するようになりました。
res.cookie()
メソッドは、「maxAge」引数として`null`または`undefined`が明示的に提供された場合に機能するようになりました。
このバージョンから、ExpressはNode.js 18.xをサポートしています。
res.download()
メソッドは、「root」オプションを受け入れるようになり、res.sendFile()
と一致するようになりました。
res.download()
メソッドには、`filename`引数を指定せずに`options`オブジェクトを供給することができ、デフォルトの`filename`が望ましい場合の呼び出しが簡素化されました。
res.format()
メソッドは、提供された「default」ハンドラーを、タイプハンドラーと同じ引数(`req`、`res`、`next`)で呼び出すようになりました。
res.send()
メソッドは、レスポンスコードが205に設定されている場合、レスポンスボディの送信を試行しなくなりました。
デフォルトのエラーハンドラーは、以前に設定されていた場合、エラーレスポンスのレンダリングを壊す可能性のある特定のレスポンスヘッダーを削除するようになりました。
ステータスコード425は、「Unordered Collection」ではなく標準の「Too Early」として表されるようになりました。
このリリースの変更点の完全なリストについては、History.md を参照してください。
4.17.3 パッチリリースには、1つのバグ修正が含まれています。
qs モジュールを更新し、`__proto__`プロパティの解析に関する修正を行いました。
このリリースの変更点の完全なリストについては、History.md を参照してください。
4.17.2 パッチリリースには、以下のバグ修正が含まれています。
コールバックが提供された場合の`res.jsonp`における`undefined`の処理を修正しました。
`"json escape"`が有効になっている場合の`res.json`と`res.jsonp`における`undefined`の処理を修正しました。
`res.cookie()`の`maxAge`オプションへの無効な値の処理を修正しました。
jshttp/proxy-addr モジュールを更新し、非推奨の`req.connection`よりも`req.socket`を使用するようにしました。
このバージョンから、ExpressはNode.js 14.xをサポートしています。
このリリースの変更点の完全なリストについては、History.md を参照してください。
4.17.1 パッチリリースには、1つのバグ修正が含まれています。
`res.status()` APIへの変更は、既存のExpress 4アプリケーションで回帰を引き起こすため、元に戻されました。
このリリースの変更点の完全なリストについては、History.md を参照してください。
4.17.0 マイナーリリースには、バグ修正といくつかの新機能が含まれています。
より生のリクエストペイロードのリクエストボディの解析を提供するために、`express.raw()`と`express.text()`ミドルウェアが追加されました。これはexpressjs/body-parserモジュールを内部で使用しているため、現在モジュールを個別に必要としているアプリは、組み込みのパーサーに切り替えることができます。
`res.cookie()` APIは、`sameSite`オプションに`"none"`値をサポートするようになりました。
`"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`メソッドのURLの最後にプレーンな`%`があると、`%25`としてエンコードされない問題を修正しました。
空の`req.url`値がデフォルトの404処理内でエラーをスローする可能性のある問題を修正しました。
`express.static`リダイレクトレスポンスの生成されたHTMLドキュメントが正しく`</html>`を含むように修正しました。
このリリースの変更点の完全なリストについては、History.md を参照してください。
4.16.2 パッチリリースには、回帰バグ修正が含まれています。
`Buffer`が`res.send`に渡され、`ETag`ヘッダーが既にレスポンスに設定されている場合に発生する可能性のある`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の脆弱性に対する保護を実装しました。Node.js 8.5.0(その特定のNode.jsバージョン)で以前のバージョンのExpress.jsを使用すると、以下のAPIが脆弱になります:`express.static`、`res.sendfile`、`res.sendFile`。
このバージョンから、ExpressはNode.js 8.xをサポートしています。
新しい設定`"json escape"`を有効にすると、`res.json()`、`res.jsonp()`、`res.send()`レスポンスで、クライアントがレスポンスをHTMLとしてスニッフィングし、`Content-Type`を尊重しなくなる可能性のある文字をエスケープできます。これにより、持続的なXSSベースの攻撃の一種からExpressアプリを保護できます。
res.download()
メソッドは、オプションの`options`オブジェクトを受け入れるようになりました。
リクエストボディの解析サポートをすぐに提供するために、`express.json()`と`express.urlencoded()`ミドルウェアが追加されました。これはexpressjs/body-parserモジュールを内部で使用しているため、現在モジュールを個別に必要としているアプリは、組み込みのパーサーに切り替えることができます。
express.static()
ミドルウェアとres.sendFile()
メソッドは、`Cache-Control`ヘッダーに`immutable`ディレクティブを設定できるようになりました。適切な`maxAge`でこのヘッダーを設定すると、ファイルがまだキャッシュにある場合、サポートされているWebブラウザがサーバーにリクエストを送信するのを防ぐことができます。
pillarjs/send モジュールには、より多くのファイルの`Content-Type`をより適切に設定するためのMIMEタイプの更新されたリストがあります。ファイル拡張子には70個の新規タイプがあります。
このリリースの変更点の完全なリストについては、History.md を参照してください。
4.15.5 パッチリリースには、セキュリティアップデート、いくつかのマイナーなパフォーマンスの向上、およびバグ修正が含まれています。
脆弱性 (https://snyk.io/vuln/npm:debug:20170905)に対処するため、debugモジュールをアップデートしました。ただし、この問題はExpressには影響しません。
脆弱性 (https://npmjs.com/advisories/526)に対処するため、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パッチリリースには、セキュリティアップデートと軽微なバグ修正が含まれています。
脆弱性 (https://snyk.io/vuln/npm:ms:20170412)に対処するため、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 Precondition Failedで応答する問題を修正しました。
このリリースにおける変更点の完全なリストについては、History.mdを参照してください。
4.15.0マイナーリリースには、バグ修正、パフォーマンス向上、その他の軽微な機能追加が含まれています。
このバージョンから、ExpressはNode.js 7.xをサポートします。
express.static()
ミドルウェアとres.sendFile()
メソッドは、 अब If-Match
およびIf-Unmodified-Since
リクエストヘッダーをサポートします。
Node.jsでFIPS準拠の暗号化が有効になっている場合でも動作する、レスポンスのデフォルトETagを生成するために、jshttp/etagモジュールをアップデートしました。
デフォルトのnot foundやエラーハンドラーなど、さまざまな自動生成されたHTMLレスポンスは、完全なHTML 5ドキュメントと追加のセキュリティヘッダーで応答するようになります。
このリリースにおける変更点の完全なリストについては、History.mdを参照してください。
4.14.1パッチリリースには、バグ修正とパフォーマンス向上が含まれています。
pillarjs/finalhandlerモジュールのアップデートにより、オブジェクトではないheaders
プロパティを持つError
オブジェクトをExpressが処理する場合の例外が修正されました。
このリリースにおける変更点の完全なリストについては、History.mdを参照してください。
4.14.0マイナーリリースには、バグ修正、セキュリティアップデート、パフォーマンス向上、その他の軽微な機能追加が含まれています。
このバージョンから、ExpressはNode.js 6.xをサポートします。
jshttp/negotiatorモジュールのアップデートにより、正規表現によるサービス拒否の脆弱性が修正されました。
res.sendFile()
メソッドは、2つの新しいオプション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
オプションをサポートするようになりました。注記: この属性はまだ完全に標準化されておらず、将来変更される可能性があり、多くのクライアントがこれを無視する可能性があります。
sameSite
オプションの可能な値は次のとおりです。
true
: 厳格な同一サイト強制のためにSameSite
属性をStrict
に設定します。false
: SameSite
属性を設定しません。'lax'
: 緩やかな同一サイト強制のためにSameSite
属性をLax
に設定します。'strict'
: 厳格な同一サイト強制のためにSameSite
属性をStrict
に設定します。Windowsでの絶対パスチェックにおいて、一部のケースで間違っていた部分を修正しました。
プロキシを使用したIPアドレス解決が大幅に改善されました。
req.range()
メソッドのオプションオブジェクトは、 अब combine
オプション(デフォルトはfalse
)をサポートします。true
の場合、重複する範囲と隣接する範囲を組み合わせ、ヘッダーにそのように指定されたかのように返します。
このリリースにおける変更点の完全なリストについては、History.mdを参照してください。