omniSENSE
🐳

NestJS の基礎(その1)

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のプロパティがあり、それぞれコントローラーとサービスの配列を受け取ります。

次回は、コントローラーについてです。