v11
2025年1月Express v5 / Fastify v5 への対応、起動の高速化、ログのJSON出力、ログを抑制できる新例外クラスなど、実運用での使い勝手を高めた成熟版です。
Express v5 / Fastify v5 への対応
土台となるHTTPフレームワークが Express v5・Fastify v5 に対応しました。特にExpress v5ではルートのパス記法に破壊的変更があり、ワイルドカードは名前付き(例: /*splat)に、オプション指定は ? ではなく波かっこを使う形になります。
既存のルート定義を持つアプリは、アップグレード時にパス記法の見直しが必要になる場合があります。
アプリ起動の高速化
モジュールの内部キー生成の仕組みが、メタデータのハッシュ化からオブジェクト参照を使う方式に作り直されました。これにより、特に動的モジュールを多用するアプリの起動が目に見えて速くなります。
ログのJSON出力対応
標準の ConsoleLogger が JSON 形式の出力に対応しました(json: true)。コンテナ環境やログ収集基盤と相性が良く、ネストしたオブジェクトや配列の表示も改善されています。
// main.ts: JSON形式のログを有効化
const app = await NestFactory.create(AppModule, {
logger: new ConsoleLogger({ json: true }),
});IntrinsicException: ログを抑制できる例外
新しい IntrinsicException クラスが追加されました。これを継承した例外は、フレームワークによる自動ログ出力をスキップします。
機密を含むエラーや、わざわざログに残す必要のないケースで、ログのノイズを減らせます。
マイクロサービスと設定の改善
マイクロサービスのトランスポーター(NATS / Kafka / Redis など)が強化され、基盤クライアントへ直接アクセスする unwrap()、内部イベントを購読する on()、接続状態を流す status オブザーバブルが使えます。
ConfigService には skipProcessEnv オプションが追加され、テスト時に環境変数の読み込みをスキップして設定を分離しやすくなりました。テストハーネスのDIサポートも強化されています。