NestJS学習記録 middleware
Middleware
ミドルウェアは、routeハンドラの前に呼び出される関数。リクエストとレスポンスにアクセスすることができる。ミドルウェアは通常nextという名前で変数名を表す。
ミドルウェアはNestMiddlewareを継承したクラスで@Injectable()
である。
import { Injectable, NestMiddleware } from '@nestjs/common'; @Injectable() export class LooggerMiddleware implements NestMiddleware { use(req: any, res: any, next: () => void) { console.log('Request...'); next(); } }
app.moduleでConfigureに登録することで利用可能になる。
import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { CatsModule } from './cats/cats.module'; import { LooggerMiddleware } from './loogger.middleware'; @Module({ imports: [CatsModule], controllers: [AppController], providers: [AppService], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer .apply(LooggerMiddleware) .forRoutes('cats'); } }