NestJS 11
目次
NestJS 11 の発表:新機能について
Kamil Mysliwiec 氏によって2025年1月22日に発表された、NestJS の最新バージョンである NestJS 11 に関する記事です。このアップデートには、多くのバグ修正、機能強化、そして新しい機能が含まれています。ここでは、特に注目すべきハイライトを見ていきましょう。
NestJS は、エンタープライズグレードの効率的でスケーラブルな Node.js アプリケーションを構築するのに役立つ TypeScript Node.js フレームワークです。
主な新機能
ロガーの機能強化
NestJS のデフォルトロガーである ConsoleLogger
が大幅にアップグレードされました。主な改善点:
- 深くネストされたオブジェクトや配列のフォーマット改善
- Map および Set のサポート
- ログプレフィックスのカスタマイズ機能
- JSON ロギングの組み込みサポート
JSON ロギングの有効化
const app = await NestFactory.create(AppModule, { logger: new ConsoleLogger({ json: true }), });
本番環境では JSON 形式のログが解析・分析に役立ちます。ローカル開発時には colors
オプションを true
に設定することで可読性を向上できます。
const app = await NestFactory.create(AppModule, { logger: new ConsoleLogger({ json: true, colors: true }), });
マイクロサービスの柔軟性向上
NestJS 11 では、NATS、Kafka、Redis などの 公式トランスポーターが大幅に改善 され、より柔軟なマイクロサービス開発が可能になりました。
unwrap
メソッドで基盤のクライアントインスタンスにアクセス
import { NatsConnection } from 'nats'; const serviceRef = app.connectMicroservice({ transport: Transport.NATS }); const connection = serviceRef.unwrap<NatsConnection>(); console.log(connection.info);
on
メソッドでイベントリスニング
serviceRef.on<NatsEvents>('disconnect', () => { console.log('Client disconnected'); });
status
オブザーバブルで状態監視
serviceRef.status.subscribe((status) => { console.log('Status:', status); });
アプリケーションの起動時間の短縮
動的モジュールの識別子生成が最適化され、特に大きな動的モジュールを持つアプリケーションの起動時間が大幅に改善されました。
Express v5 および Fastify v5 のサポート
NestJS 11 は Express v5 と Fastify v5 をサポートし、最新の依存関係に対応しました。
Express v5 への移行時の注意点
*
ワイルドカードは名前が必要 (/*splat
のように記述)?
は使用不可、中括弧{}
を使用- 正規表現の文字はサポートされなくなった
@Get('users/*splat') findAll() { return 'This route will work in Express v5'; }
その他のアップデート
- ライフサイクルフックの実行順序の変更
CacheModule
がcache-manager
v6 に対応- 新しい
ParseDatePipe
の追加 ConfigService#get
の動作改善@nestjs/cqrs
の強化
NestJS 11 への移行
NestJS 10 から 11 への移行ガイドが提供されています。アップグレードの詳細については、公式ドキュメントを参照してください。
まとめ
NestJS 11 は、ロギング、マイクロサービス、パフォーマンス最適化、依存関係の最新化など、開発者体験を向上させる重要なアップデートを含んでいます。