搜索

首页  >  问答  >  正文

直接从另一个模块导入nestjs模块,而不导入到AppModule

<p>我是 NestJs 的新手,我正在创建一个名为 <code>example .module</code> 的模块并导入另一个名为 <code>DB.Module</code> 的模块,但是如果我没有在 <code>App.Module</code> 中导入 <code>DB.Module</code>。是否必须导入App.Module

中的所有模块
[Nest] 45706 - 07/19/2023, 7:47:55 PM 日志 [NestFactory] ​​正在启动 Nest 应用程序...
[Nest] 45706 - 07/19/2023, 7:47:55 PM 错误 [ExceptionHandler] Nest 无法解析 DbexampleService(?、MysqlService)的依赖项。请确保索引 [0] 处的参数 MongoService 在 AppModule 上下文中可用。

潜在的解决方案:
- AppModule 是有效的 NestJS 模块吗?
- 如果 MongoService 是一个提供者,它是当前 AppModule 的一部分吗?
- 如果 MongoService 是从单独的 @Module 导出的,那么该模块是否在 AppModule 中导入?
  @模块({
    import: [ /* 包含 MongoService 的模块 */ ]
  })</pre>
<p><strong>文件:<code>example.module.ts</code></strong></p>
从 '@nestjs/common' 导入 { Module };
从'./services/dbexample/dbexample.service'导入{DbexampleService};
从 './services/http-example/http-example.service' 导入 { HttpExampleService };
从 'src/global/dbModule/services/mongo.service' 导入 { MongoService };
从 'src/global/dbModule/services/mysql.service' 导入 { MysqlService };
从'../global/dbModule/db.module'导入{DBModule};

@模块({
    导入:[DBModule],
    提供者:[DbexampleService、HttpExampleService、MongoService、MysqlService]
})
导出类 ExamplesModule {}
; <p><strong>文件:<code>DB.module.ts</code></strong></p>
从 '@nestjs/common' 导入 { Module };
从 './services/mongo.service' 导入 { MongoService };
从'./controllers/db.controller'导入{DBController};
从'./services/mysql.service'导入{MysqlService};

@模块({
  控制器:[DBController],
  提供者:[MongoService,MysqlService],
  导出:[MongoService、MysqlService]
})
导出类 DBModule {}
; <p><strong>文件:<code>App.module.ts</code></strong></p>
从 '@nestjs/common' 导入 { Module };
从'./app.controller'导入{AppController};
从'./app.service'导入{AppService};
从'@nestjs/config'导入{ConfigModule,ConfigService};
从'../config/configuration'导入{配置};
从'./examples/services/dbexample/dbexample.service'导入{DbexampleService};
从'./examples/controllers/dbexample/dbexample.controller'导入{DbexampleController};

@模块({
  进口:[
    ConfigModule.forRoot({
      是全局的:正确的,
      负载:[配置]
    })
  ],
  controllers: [AppController, DbexampleController],
  providers: [
    AppService,
    DbexampleService
  ],
})
export class AppModule {}</pre>
<p>问题:是否必须导入<code>App.module</code>中的所有模块?如果否,如何解决此错误?</p>
P粉615886660P粉615886660437 天前397

全部回复(1)我来回复

  • P粉916760429

    P粉9167604292023-09-06 10:07:03

    尝试在 example.module.ts 中导出 DBModule 并在 AppModule 中导入 ExamplesModule

    回复
    0
  • 取消回复