モジュールを作成し、機能を管理する方法

NestJSのモジュールの作成と管理について学びましょう。

概要

NestJSでは、アプリケーションの構造を整理し、コードの再利用を促進するためにモジュールという概念があります。モジュールは関連するコントローラーやサービスをひとまとめにし、アプリケーションの構造を明確にします。この記事では、モジュールの作成と管理方法を具体的な例を交えて解説します。

nest.js v10.1.7
nodejs v19.7.0

また、今回作成するコードは全て、GitHubに掲載しています。

モジュールを作成する方法

NestJSでは、CLIを使って簡単にモジュールを作成することができます。以下のコマンドを実行すると、usersモジュールが作成されます。

nest g module users

このコマンドを実行すると、usersモジュールに必要なファイルが自動的に作成されます。

src/
└── users/
    └── users.module.ts

また、ルートモジュールのapp.module.tsにも、作成したモジュールが自動的に追加されます。

/src/app.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersModule } from './users/users.module'; 

@Module({
  imports: [UsersModule],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

モジュールを設定する方法

次に、usersモジュールにコントローラーとサービスを追加します。これにより、usersモジュールがユーザーに関する処理を一手に担うようになります。

/src/users/users.module.ts

import { Module } from '@nestjs/common';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';

@Module({
  imports: [],
  controllers: [UsersController],
  providers: [UsersService],
})
export class UsersModule {}

これで、usersモジュールはユーザーのデータを操作するロジックを持つようになりました。ルートモジュールのapp.module.tsは以下のようになります。

/src/app.module.ts

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersModule } from "./users/users.module";

@Module({
  imports: [UsersModule],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

このようにモジュールを利用すると、関連する機能をひとまとめにすることができ、アプリケーションの構造が明確になります。

まとめ

この記事では、NestJSでのモジュールの作成と管理方法について学びました。モジュールはアプリケーションの構造を整理し、コードの再利用を促進します。次のステップとして、NestJSのミドルウェアについて学ぶことをお勧めします。