【问题标题】:NestJs Testing with CACHE_MANAGER injected注入 CACHE_MANAGER 的 NestJs 测试
【发布时间】:2022-01-25 15:20:00
【问题描述】:

我有一些服务,我在构造函数中注入 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.

我对 NestJs 比较陌生,所以我真的不知道如何解决它

【问题讨论】:

    标签: javascript node.js nestjs


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复。我试过了,但我得到了相同的结果
    • 编辑您的问题,向我们展示您在其中注册ManagerService 提供者的模块
    • 只是为了添加一些上下文,只要将带有注入的服务作为提供者传递给模块,它就可以工作。当我在“导入”数组中传递任何带有注入的服务时,问题似乎发生了
    • 等一下,您是否将服务传递给imports 数组?来自文档:imports 是 modules 的列表
    • 那么如果模块的服务在构造函数中需要依赖怎么传递呢?
    猜你喜欢
    • 2021-05-29
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2019-04-13
    • 2022-01-06
    • 1970-01-01
    • 2021-02-08
    相关资源
    最近更新 更多