После того, как глобально настроенный кеш, например, docs , CacheInterceptor выдает ошибку, если я использую его вне app.module.
app.module.ts
const cacheConfig = {
store: redisStore,
host: 'localhost',
port: 6379
}
@Module({
imports: [
CacheModule.register(cacheConfig),
CustomerModule,
],
providers: [
{
provide: APP_INTERCEPTOR,
useClass: CacheInterceptor
}
]
})
export class AppModule {}
customer.module.ts
@Module({
imports: [TypeOrmModule.forFeature([CustomerRepository]), TypeOrmModule.forFeature([User])],
controllers: [CustomerController]
})
export class CustomerModule {}
customer.controller.ts
@Controller('customer')
export class CustomerController {
constructor(
@InjectRepository(CustomerRepository) private customerRepository: CustomerRepository,
@InjectRepository(User) private userRepository: Repository<User>
) {}
@Get()
@UseInterceptors(CacheInterceptor)
async get(): Promise<any> {
const user = await this.userRepository.findOne({ where: { id: 1 }, relations: ['customer'] })
console.log(user.customer.name)
const customer = await this.customerRepository.findOne({ where: { id: 1 }, select: ['id', 'name'] })
return { customer: customer.name, email: user.email }
}
}
Я хотел бы использовать CacheInterceptor для всех модулей без импорта каждого CacheModule.
Nest не может разрешить зависимости APP_INTERCEPTOR (UUID: 6aa42c77-1bac-4098-b217-1b01eb268240) (?, Отражатель). Убедитесь, что аргумент с индексом [0] доступен в контексте CustomerModule.