web-dev-qa-db-ja.com

別のモジュールからnestjsサービスを注入する

PlayersModuleItemsModuleがあります。

ItemsServicePlayersServiceを使用したい。

インジェクションで追加する場合:

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){}

私はこのネストエラーが発生します:

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

両方のモジュールはapp.module.ts。両方のサービスがモジュールで単独で機能しています。

16
Fairydhwen

提供するモジュールでItemsServiceをエクスポートする必要があります。

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

そして、サービスを使用するモジュールにインポートします:

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

私が抱えていたのと同じ問題に直面したと思います。私のシナリオは、お互いのサービスを使用する必要がある2つの兄弟カスタムモジュール(ユーザー、認証)でした。 circular DIを使用して解決しました。これを確認してください link

それがあなたの問題を解決したかどうか、私に教えてください、多分私はあなたにさらに助言することができます。

0
Eyal Israel