Инъекция зависимостей в Nestjs typeorm - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть простой модуль nestjs со службой, которая делает вызовы к базе данных sql через typeorm.Модуль работает нормально, но я не могу использовать службу в другой службе внешнего модуля.

Вот мой модуль:

@Module({
  imports: [TypeOrmModule.forFeature([MyEntity])],
  controllers: [MyController],
  providers: [MyService],
  exports: [MyService],
})
export class MyModule {
  constructor(
    private readonly connection: Connection) { }
}

И мой сервис:

@Injectable()
export class MyService {
    constructor(
        @InjectRepository(MyEntity)
        private readonly myEntityRepository: Repository<MyEntity>,
    ) {}

    async find(): Promise<any> {
        return await this.myEntityRepository.find();
    }
}

Это отлично работает, я могу использовать MyService в MyController, но теперь я хочу использовать MyService в другом сервисе из другого модуля:

  @Module({
      imports: [MyModule],
      controllers: [OtherController],
      providers: [OtherService, MyService],
    })
    export class OtherModule {
      constructor(
        private readonly connection: Connection) { }
    }

И мой сервис:

@Injectable()
export class OtherService {
    constructor(
        private readonly myService: MyService,
    ) {}

    async find(): Promise<any> {
        return await this.myService.find();
    }
}

Я всегдаполучено сообщение об ошибке "Nest не может разрешить зависимости MyService ...".Я попробовал все, например, создание поставщиков баз данных и т. Д., Но ничего не работает.

Важным моментом является то, что я не хочу, чтобы OtherModule и OtherService знали о сущностях и репозиториях, обрабатываемых в MyService.

...