generated at
Express v5
from Express

2024/10/15
10年ぶりのmajor versionのupdateらしい



GPT-4
Express v5では、以下のような変更が導入されています。

1. Node.jsの古いバージョンのサポート終了:
Node.js 18以降が必須になり、古いバージョンのNode.jsのサポートが終了しました。これにより、パフォーマンスとメンテナビリティの向上が期待されます。

2. パスマッチングと正規表現の変更:
path-to-regexp@8.x にアップデートされ、以前の 0.x バージョンとは異なるパスの書き方が必要です。
正規表現を使ったサブエクスプレッション(例: /:foo(\d+) )はセキュリティリスク(ReDoS攻撃)を避けるために廃止されました。
* ? の扱いが変わり、予約された文字(例: () , [] )も増えました。

3. Promiseのサポート:
ミドルウェア内でPromiseがサポートされ、非同期関数内でエラーが発生した場合も、自動的に次のエラーハンドリングミドルウェアに引き渡されます。

4. Body Parserの変更:
bodyParser() の組み合わせミドルウェアが廃止され、 req.body が常に初期化される挙動が変更されました。
Brotli圧縮形式のサポートが追加されました。

5. メソッドシグネチャの整理:
res.send(status, body) のようなシグネチャが廃止され、一貫性を持ったAPIに統一されました。
res.redirect('back') res.location('back') のような「マジック文字列」はサポートされなくなり、 req.get('Referrer') || '/' を使用する必要があります。

6. その他の変更:
パラメータはすべて名前付きになり、数値でのパラメータ取得が廃止されました。
マイグレーションガイドやセキュリティ対策ガイドが提供されています。

これにより、Expressのセキュリティ強化と、よりモダンで一貫性のあるAPI設計が進められています。