NestJSとは
NestJSは、Node.jsのためのプログレッシブなフレームワークです。 Angularのアーキテクチャに基づいており、開発者にとって使いやすく、拡張性が高く、堅牢性があります。 NestJSは、Express、Fastifyなどの人気のあるライブラリをラップしていますが、自分でフルスタックアプリケーションを構築することもできます。
NestJSの主な特徴は以下の通りです。
- Angularの構造に基づくモジュール構造
- TypeScriptの完全なサポート
- イベント駆動型アーキテクチャ
- バリデーションの自動化
- テスト容易性
NestJSは、企業レベルのアプリケーションを構築するために設計されており、多くの開発者にとって優れた選択肢となっています。
NestJSの基本要素
- モジュール
- コントローラー
- プロバイダー
- サービス
- ミドルウェア
- パイプ
- ゲートウェイ
- フィルター
これらの要素は、NestJSアプリケーションの構成要素として使用され、機能を分離し、コードの再利用性を高めることができます。
NestJSのモジュール
NestJSのモジュールは、アプリケーションの構成要素として使用されます。@Moduleデコレータを使用して定義され、コントローラー、サービス、プロバイダーなどを含めることができます。これらの要素は、機能を分離し、コードの再利用性を高めることができます。また、@Moduleデコレータには、controllersとprovidersのプロパティがあり、それぞれコントローラーとサービスの配列を受け取ります。
NestJSのモジュールの定義方法
NestJSのモジュールは、@Moduleデコレータを使用して定義されます。以下は、モジュールの例です。
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
})
export class CatsModule {}
上記の例では、@Moduleデコレータを使用してCatsModuleを定義しています。CatsModuleには、CatsControllerとCatsServiceが含まれています。CatsControllerは、リクエストを処理し、CatsServiceは、ビジネスロジックを実装するために使用されます。@Moduleデコレータには、controllersとprovidersのプロパティがあり、それぞれコントローラーとサービスの配列を受け取ります。
次回は、コントローラーについてです。