我在每个@UseInterceptors(ClassSerializerInterceptor)
之类的Controller代码中都使用了,所以我决定将其设置为全局,并且尝试不设设置。
我在没有new
的情况下尝试使用,结果却完全无法正常工作。
app.useGlobalInterceptors(new ClassSerializerInterceptor(new Reflector()));
我检查了NestJS源代码,并假定它不能用作全局代码,但应该使用。
答案 0 :(得分:1)
您是否尝试过使用以下代码行:
app.useGlobalInterceptors(new ClassSerializerInterceptor(app.get(Reflector)));
答案 1 :(得分:0)
我更喜欢在 app.modules.ts
中注入全局拦截器。
从具有 useGlobalInterceptors()
的任何模块外部注册的全局拦截器无法注入依赖项,因为这是在任何模块的上下文之外完成的。
import { ClassSerializerInterceptor, Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';
@Module({
providers: [
{
provide: APP_INTERCEPTOR,
useClass: ClassSerializerInterceptor,
},
],
})
export class AppModule {}
参考: