NestJS
概要 †
- Typescript製のバックエンドフレームワーク
- デフォルトではExpressをコアとして動作
- Fastifyをコアとして動作させることもできる
- Node.jsで上で動く
- 実装と疎結合になるようなアーキテクチャ
- nest cli で簡単にプロジェクトやソースファイルのテンプレートを生成できる
- Expressのミドルウェアをそのまま使える
- テストフレームワークが用意されている
- 認証ライブラリはPassportなどが使える
- OpenAPIで出力しやすい
- GraphQLもサポート
- WebSocketももちろんOK
- class-validatorを使って楽々バリデーション
- TypeORMで型の恩恵を最大限に受けつつDB操作できる
- とにかく拡張性が高い
- フレームワークのエコシステムとしてDIの機構を用意している
- デコレーターやアノテーションによって関心の分離を行うことができる
- Interceptorや大域エラーハンドリングなどのデザインパターンをフレームワークの機能として提供している
事例 †
入門 †
- NestJSのCLIをインストール
$ npm i -g @nestjs/cli
- NestJSのプロジェクト作成
$ nest new [プロジェクト名]
monorepo †
monorepoとは †
- 1つのリポジトリで複数のモジュールリポジトリを管理すること
- 共通のモジュールを参照する複数のアプリケーションが存在する場合に管理が楽になる
効果 †
- NestJSはアプリケーションが肥大化しがちです。この機能を使用することでアプリケーションを分割してリリース単位を分けて、アプリケーションを小さく出来るので、起動時の読み込み処理の改善につながります。
関連ツール †
認証 †
AWS †
Azure †
|