NestJs使用interceptor,function卻Call了2次?
在做side project時,想要用intercepotr來做全局logger
照著官方示範一路做下來,每次logger都印2份!?
後來才發現,在app.module裡設好後,就全局生效了
不像service那樣需import export
import { Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';
// 此處設置好,就是針對全局controller欄截了!
@Module({
providers: [
{
provide: APP_INTERCEPTOR,
useClass: LoggingInterceptor,
},
],
})
export class AppModule {}
不必再到各controller設置@UseInterceptors()
// 設置此處是代表針對此controller才觸發攔截器
@UseInterceptors(LoggingInterceptor)
export class CatsController {}
我的問題卡在我一直把他當成像services那樣還需要export才能使用
所以兩邊都設置了,造成interceptor觸發了2次
浪費我2小時一直try and error QQ…