NestJS:如何将 ClassSerializerInterceptor 设置为全局拦截器
NestJS: How to setup ClassSerializerInterceptor as global interceptor
我在每个 Controller 代码中使用 @UseInterceptors(ClassSerializerInterceptor)
,所以我决定将其设为全局并尝试设置它,但没有成功。
我尝试了 new
和 new
并最终得到了这样的东西完全不起作用。
app.useGlobalInterceptors(new ClassSerializerInterceptor(new Reflector()));
我检查了 NestJS 源代码,我认为它不能用作全局但它应该。
您是否尝试过使用这行代码:
app.useGlobalInterceptors(new ClassSerializerInterceptor(app.get(Reflector)));
我更喜欢在 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 {}
参考:
How to use Service in Global-interceptor in NEST Js
我在每个 Controller 代码中使用 @UseInterceptors(ClassSerializerInterceptor)
,所以我决定将其设为全局并尝试设置它,但没有成功。
我尝试了 new
和 new
并最终得到了这样的东西完全不起作用。
app.useGlobalInterceptors(new ClassSerializerInterceptor(new Reflector()));
我检查了 NestJS 源代码,我认为它不能用作全局但它应该。
您是否尝试过使用这行代码:
app.useGlobalInterceptors(new ClassSerializerInterceptor(app.get(Reflector)));
我更喜欢在 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 {}
参考:
How to use Service in Global-interceptor in NEST Js