Nest.jsでミドルウェアを使用する方法


Nest.jsでミドルウェアを作成するには、以下の手順に従います。

  1. ミドルウェアクラスを作成します。これは、@Injectable()デコレータを使用してNest.jsの依存性注入システムに登録する必要があります。例えば、以下のようなミドルウェアクラスを作成できます。
@Injectable()
export class MyMiddleware implements NestMiddleware {
  use(req: Request, res: Response, next: NextFunction) {
    // ミドルウェアの処理を記述します
    console.log('ミドルウェアが実行されました');
    next();
  }
}
  1. ミドルウェアをグローバルに適用するか、特定のルートやコントローラーに適用するかを選択します。
  • グローバルに適用する場合は、main.tsファイルでapp.use()メソッドを使用します。
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.use(MyMiddleware); // ミドルウェアをグローバルに適用
  await app.listen(3000);
}
bootstrap();
  • 特定のルートやコントローラーに適用する場合は、@UseMiddleware()デコレータを使用します。例えば、以下のようなコントローラーでミドルウェアを使用できます。
@Controller('example')
@UseMiddleware(MyMiddleware) // ミドルウェアをコントローラーに適用
export class ExampleController {
  // ルートやメソッドの処理を記述します
  @Get()
  getData() {
    return 'データを取得しました';
  }
}

これで、Nest.jsでミドルウェアを使用する準備が整いました。ミドルウェアは、リクエストとレスポンスの処理の間に入り、特定の操作を実行するための理想的な方法です。例えば、認証やログ記録などのタスクを処理するために使用できます。

この記事では、Nest.jsでミドルウェアを作成し、グローバルに適用する方法と特定のルートやコントローラーに適用する方法を紹介しました。ミドルウェアは、アプリケーションの柔軟性と保守性を向上させるための強力なツールです。ぜひ実践してみてください。