gpt4 book ai didi

http - 如何在 NestJS 中使用多个全局拦截器

转载 作者:行者123 更新时间:2023-12-04 12:04:48 25 4
gpt4 key购买 nike

我已经知道我们可以从下面的代码创建全局拦截器:

import { Module } from '@nestjs/common';
import { APP_INTERCEPTOR } from '@nestjs/core';

@Module({
providers: [
{
provide: APP_INTERCEPTOR,
useClass: LoggingInterceptor,
},
],
})
export class AppModule {}
来源: documentation
但是,如果我想说, UserInterceptor 怎么办? . UserInterceptor将从数据库中获取用户并转换请求。 UserInterceptor需要注入(inject)比方说 UserService .
我想用 UserInterceptor全局。
@Injectable()
export class UserInterceptor {
constructor(private readonly service: UserService) {}
}
来自 documentation ,我们做不到 app.useGlobalInterceptors(new UserInterceptor())因为 UserInterceptor在构造函数 (UserService) 中需要 1 个参数。
因为我们已经使用了 APP_INTERCEPTORLoggingInterceptor ,我没有找到另一种为 APP_INTERCEPTOR 分配另一个值的方法全局使用拦截器。
例如,我认为如果我们可以这样做,问题就会解决:
providers: [
{
provide: APP_INTERCEPTOR,
useClass: [LoggingInterceptor, UserInterceptor]
}
]

最佳答案

providers: [
{
provide: APP_INTERCEPTOR,
useClass: LoggingInterceptor
},
{
provide: APP_INTERCEPTOR,
useClass: UserInterceptor
}
]
像这样

关于http - 如何在 NestJS 中使用多个全局拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67597203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com