1. ホーム
  2. javascript

[解決済み] 他のモジュールからnestjsサービスをインジェクトする

2023-04-02 02:53:33

質問

私は PlayersModuleItemsModule .

を使いたいのですが ItemsService の中に PlayersService .

インジェクションで追加すると

import { Injectable } from '@nestjs/common';
import { InjectModel } from 'nestjs-typegoose';
import { ModelType, Ref } from 'typegoose';
import { Player } from './player.model';
import { Item } from '../items/item.model';
import { ItemsService } from '../items/items.service';

@Injectable()
export class PlayersService {
    constructor(
        @InjectModel(Player) private readonly playerModel: ModelType<Player>,
        private readonly itemsService: ItemsService){}

私はこのネストエラーを取得します。

[Nest] 11592 - 2018-8-13 11:42:17 [ExceptionHandler] Nest can't PlayersService の依存関係を解決できません (+, ?)。を確認してください。 インデックス [1] にある引数が現在のコンテキストで利用可能であることを確認してください。

両方のモジュールがインポートされ app.module.ts . 両方のサービスは、そのモジュールの中で単独で動作しています。

どのように解決するのですか?

あなたは エクスポート ItemsService を提供するモジュールで

@Module({
  controllers: [ItemsController],
  providers: [ItemsService],
  exports: [ItemsService]
  ^^^^^^^^^^^^^^^^^^^^^^^
})
export class ItemsModule {}

をインポートし、エクスポートした モジュール をインポートしてください。

@Module({
  controllers: [PlayersController],
  providers: [PlayersService],
  imports: [ItemsModule]
  ^^^^^^^^^^^^^^^^^^^^^^
})
export class PlayersModule {}

⚠️複数のモジュールに同じプロバイダを追加しないでください。プロバイダをエクスポートして、モジュールをインポートしてください。⚠️