我有一些服务在构造函数中注入CACHE_MANAGER
import { CACHE_MANAGER, Inject, Injectable } from '@nestjs/common';
import { Cache } from 'cache-manager';
...
export class ManagerService {
constructor(@Inject(CACHE_MANAGER) private cacheManager: Cache) {}
...
}这使我在测试导入这些服务的模块时出错。
Nest can't resolve dependencies of the ManagerService (?). Please make sure that the argument CACHE_MANAGER at index [0] is available in the Web3ManagerService context.
我对NestJ比较陌生,所以我真的想不出怎么解决这个问题
发布于 2021-12-25 20:10:43
要在CACHE_MANAGER下注入缓存管理器提供程序,需要将创建此提供程序的nestjs模块导入到具有ManagerService的模块中。
@Module({
imports: [CacheModule.register()], // <<<<
providers: [ManagerService],
})
export class AppModule {}发布于 2022-10-25 16:16:00
我只是遇到了同样的问题,就这样解决了这个问题:
manager.service.spec.ts
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [ManagerService, { provide: CACHE_MANAGER, useValue: {} }],
}).compile();
service = module.get<ManagerService>(ManagerService);
});发布于 2022-10-07 01:20:02
设置isGlobal: true
CacheModule.register({
url: process.env.REDIS_URL,
db: 0,
port: parseInt(process.env.REDIS_PORT),
password: process.env.REDIS_PASSWORD,
isGlobal: true, //<<<<<<<
})https://stackoverflow.com/questions/70482273
复制相似问题