<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>
尝试在
example.module.ts
中导出DBModule
并在AppModule
中导入ExamplesModule
。