J'ai un PlayersModule
et un ItemsModule
.
Je veux utiliser le ItemsService
dans le PlayersService
.
Quand je l'ajoute par injection:
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){}
Je reçois cette erreur d'imbrication:
[Nest] 11592 - 2018-8-13 11:42:17 [ExceptionHandler] Nest ne peut pas résoudre les dépendances du PlayersService (+,?). Veuillez vous assurer que l'argument de l'index [1] est disponible dans le contexte actuel.
Les deux modules sont importés dans le app.module.ts
. Les deux services fonctionnent seuls dans leur module.
Vous devez exporter le ItemsService
dans le module qui le fournit:
@Module({
controllers: [ItemsController],
providers: [ItemsService],
exports: [ItemsService]
^^^^^^^^^^^^^^^^^^^^^^^
})
export class ItemsModule {}
puis importez-le dans le module qui utilise le service:
@Module({
controllers: [PlayersController],
providers: [PlayersService],
imports: [ItemsModule]
^^^^^^^^^^^^^^^^^^^^^^
})
export class PlayersModule {}
Je crois que vous avez fait face au même problème que moi. Mon scénario était 2 modules personnalisés frères (utilisateur, auth) qui devaient utiliser les services de l'autre. J'ai utilisé DI circulaire pour le résoudre. veuillez vérifier cela lien
Faites-moi savoir si, si cela a résolu votre problème, je pourrais peut-être vous conseiller davantage.