AppModule にインポートせずに、別のモジュールから直接 nestjs モジュールをインポートします
P粉615886660
2023-09-05 20:55:36
<p>NestJs は初めてで、<code>example .module</code> というモジュールを作成し、<code>DB.Module</code> という別のモジュールをインポートしていますが、 <code>DB.Module</code> を <code>App.Module</code> にインポートしません。<code>App.Module</code></p> を入力する必要があるかどうか中のすべてのモジュール
<pre class="brush:php;toolbar:false;">[Nest] 45706 - 07/19/2023, 7:47:55 PM LOG [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 内にインポートされますか?
@モジュール({
imports: [ /* MongoService を含むモジュール */ ]
})</pre>
<p><strong>文書:<code>example.module.ts</code></strong></p>
<pre class="brush:php;toolbar:false;">import { モジュール } from '@nestjs/common';
import { DbexampleService } から './services/dbexample/dbexample.service';
import { HttpExampleService } から './services/http-example/http-example.service';
import { MongoService } から 'src/global/dbModule/services/mongo.service';
import { MysqlService } から 'src/global/dbModule/services/mysql.service';
import { DBModule } から '../global/dbModule/db.module';
@モジュール({
インポート: [ DBModule ]、
プロバイダー:[DbexampleService、HttpExampleService、MongoService、MysqlService]
})
エクスポート クラス ExamplesModule {}</pre>
<p><strong>文書:<code>DB.module.ts</code></strong></p>
<pre class="brush:php;toolbar:false;">import { モジュール } from '@nestjs/common';
import { MongoService } から './services/mongo.service';
import { DBController } から './controllers/db.controller';
import { MysqlService } から './services/mysql.service';
@モジュール({
コントローラ: [DBController]、
プロバイダー: [MongoService、MysqlService]、
エクスポート:[MongoService、MysqlService]
})
エクスポート クラス DBModule {}</pre>
<p><strong>文件:<code>App.module.ts</code></strong></p>
<pre class="brush:php;toolbar:false;">import { モジュール } from '@nestjs/common';
import { AppController } から './app.controller';
'./app.service' から { AppService } をインポートします。
import { ConfigModule, ConfigService } から '@nestjs/config';
import { 構成 } から '../config/configuration';
import { DbexampleService } から './examples/services/dbexample/dbexample.service';
import { DbexampleController } から './examples/controllers/dbexample/dbexample.controller';
@モジュール({
輸入品: [
ConfigModule.forRoot({
isGlobal: true、
ロード: [構成]
})
]、
コントローラー: [AppController、DbexampleController]、
プロバイダー: [
アプリサービス、
DbexampleService
]、
})
エクスポート クラス AppModule {}</pre>
<p>问問題:<code>App.module</code> 内のすべてのモジュールを入力する必要があるかどうか?その場合、この問題はどのように解決されますか?</p>
example.module.ts
でDBModule
をエクスポートし、AppModule
でExamplesModule
をインポートしてみてください。