想象一下,我们在 RequestResponseModule 中有 RequestResponseInterceptor 和 typeorm.forFeature([RequestResponseEntity]) ,并且我在拦截器中使用这个 SomeEntityRepository 。那么我想在 SomeModule 的控制器中使用这个拦截器我应该怎么做?
我有这样的:
export class RequestResponseModule {
static registerAsync(): DynamicModule {
return {
module: RequestResponseModule,
imports: [HttpModule, TypeOrmModule.forFeature([RequestResponseEntity])],
providers: [NasPhHttpService, RequestResponseInterceptor, RequestResponseScheduler],
exports: [NasPhHttpService, RequestResponseInterceptor],
};
}
}
SomeModule 看起来像这样:
@Module({
imports: [HttpModule, TypeOrmModule.forFeature([ExtPaymentKafkaEventDto]), RequestResponseModule.registerAsync()], providers: [SomeService, ExtPaymentRepository, ConfigService, SomeAuth], controllers: [SomeController], exports: [SomeService], }) export class SomeModule {}
在控制器中我这样使用它:
@UseInterceptors(RequestResponseInterceptor)
但我有一个错误说:
[Nest] 99697 - 08/17/2023, 6:21:50 PM ERROR [ExceptionHandler] Nest can't resolve dependencies of the RequestResponseInterceptor (?). Please make sure that the argument RequestResponseEntityRepository at index [0] is available in the SomeModule context.
我尝试不使用像拦截器那样的 RequestResponseInterceptor ,而是将其注入构造函数中,并且它不会给我错误。那么也许我应该以不同的方式注射它?
我尝试不使用像拦截器那样的 RequestResponseInterceptor ,而是将其注入构造函数中,并且它不会给我错误。那么也许我应该以不同的方式注射它?