Open2
nestjsのglobal middlewereの利用方法

下記のようなmiddlewereがあるとするこれを全てのルートハンドラに適用する場合の例
export class LoggerMiddleware implements NestMiddleware {
use(
req: FastifyRequest['raw'],
res: FastifyReply['raw'],
next: (error?: any) => void,
) {
console.log(`Request...`);
next();
}
}
下記のようにインタンス化したのちにuseメソッドを呼び出す
async function bootstrap() {
const app = await NestFactory.create<NestFastifyApplication>(
AppModule,
new FastifyAdapter({ logger: false }),
);
app.use(new LoggerMiddleware().use);
await app.listen(process.env.PORT || 3000, '0.0.0.0'); // 外部ホストからのAPIを受け入れるため0.0.0.0を指定する
}
bootstrap();

起点となるModuleに適用する場合は以下
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(LoggerMiddleware).forRoutes('*');
}
}
ログインするとコメントできます