Node.js 当模块依赖于@Nestjs/Mongoose中的Mongoose模型时的Nestjs依赖项注入顺序,内部的详细图表

Node.js 当模块依赖于@Nestjs/Mongoose中的Mongoose模型时的Nestjs依赖项注入顺序,内部的详细图表,node.js,nestjs-providers,nestjs-mongoose,Node.js,Nestjs Providers,Nestjs Mongoose,该图很好地解释了我目前拥有的流程以及失败的原因 我有一个logger.module,它导出一个依赖于@nestjs/mongooseLogModel的loger.service 我有一个db.module,它导出session.service并导入logger.module 我有一个session.service,由Db.Module导出并导入logger.service 我有一个mock.db.module,它与真实的db.module(没有模拟服务,真实的服务)完全相同,只是mongoos

该图很好地解释了我目前拥有的流程以及失败的原因

  • 我有一个
    logger.module
    ,它导出一个依赖于
    @nestjs/mongoose
    LogModel
    loger.service
  • 我有一个
    db.module
    ,它导出
    session.service
    并导入
    logger.module
  • 我有一个
    session.service
    ,由
    Db.Module
    导出并导入
    logger.service
  • 我有一个
    mock.db.module
    ,它与真实的
    db.module
    (没有模拟服务,真实的服务)完全相同,只是mongoose连接到内存中的mongodb
  • 我有一个
    session.service.spec
    tests文件,用于导入
    mock.db.module
但是,我找不到任何好方法将
LogModel
提供到
log.module
中,而不需要我导入
@nestjs/mongoose
并在每次启动时实例化/等待新连接

我只能得出两个结果:

  • 使用
    @forwardRef(()=>Logger.module.register())
    或/和
    @forwardRef(()=>Db.module.register())
    ,这会导致堆分配错误
  • 不要使用forwardRef并获取循环依赖项警告
在这个用例中,如何使用Nestjs有效地映射依赖关系

图表: