注入CACHE_MANAGER的NestJs测试

3lxsmp7m  于 2022-10-12  发布在  Node.js
关注(0)|答案(2)|浏览(264)

我有一些服务,在该服务中我在构造函数中注入了缓存管理器

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.

我对NestJs比较陌生,所以我真的想不出如何解决这个问题

cig3rfwq

cig3rfwq1#

要在CACHE_MANAGER下注入缓存管理器提供程序,您需要将创建此提供程序的nestjs模块导入到具有ManagerService的模块中

@Module({
  imports: [CacheModule.register()], // <<<<
  providers: [ManagerService],
})
export class AppModule {}

就像文档显示的https://docs.nestjs.com/techniques/caching

dfuffjeb

dfuffjeb2#

设置isGlobal: true

CacheModule.register({
    url: process.env.REDIS_URL,
    db: 0,
    port: parseInt(process.env.REDIS_PORT),
    password: process.env.REDIS_PASSWORD,
    isGlobal: true, //<<<<<<<
})

相关问题