NestJs使用interceptor,function卻Call了2次?

在做side project時,想要用intercepotr來做全局logger
照著官方示範一路做下來,每次logger都印2份!?

後來才發現,在app.module裡設好後,就全局生效了
不像service那樣需import export

1
2
3
4
5
6
7
8
9
10
11
12
13
import { Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';

// 此處設置好,就是針對全局controller欄截了!
@Module({
providers: [
{
provide: APP_INTERCEPTOR,
useClass: LoggingInterceptor,
},
],
})
export class AppModule {}

不必再到各controller設置@UseInterceptors()

1
2
3
// 設置此處是代表針對此controller才觸發攔截器
@UseInterceptors(LoggingInterceptor)
export class CatsController {}

我的問題卡在我一直把他當成像services那樣還需要export才能使用
所以兩邊都設置了,造成interceptor觸發了2次

浪費我2小時一直try and error QQ…