Sidenote
Я создал минималистичный репозиторий c для целей воспроизведения: Ссылка на репозиторий репродукций
Я только что обновил мой проект Nest до версии 7.0.0. Я использую TypeORM и в настоящее время у меня есть 3 модуля в моем проекте. Всем им необходим доступ к файлам из другого модуля.
GraphNodesModule
необходим доступ:
- GraphsService
- ModulesService
GraphsModule
необходимо получить доступ:
ModulesModule
необходимо получить доступ:
Все 3 из них экспортируют свой сервис, чтобы сделать его доступным в других модулях. My GraphNodesModule
импортирует два других модуля для доступа к их службам и заботится о циклической зависимости
@Module({
imports: [
TypeOrmModule.forFeature([GraphNodesRepository]),
forwardRef(() => GraphsModule),
ModulesModule,
],
providers: [GraphNodesService],
controllers: [GraphNodesController],
exports: [GraphNodesService],
})
. GraphsModule
импортирует GraphNodesModule для доступа к службе и заботится о циклической зависимости
@Module({
imports: [
TypeOrmModule.forFeature([GraphsRepository]),
forwardRef(() => GraphNodesModule),
],
providers: [GraphsService],
controllers: [GraphsController],
exports: [GraphsService],
})
ModulesModule
не нужно импортировать другие модули, он просто регистрирует другой репозиторий
@Module({
imports: [
TypeOrmModule.forFeature([ModulesRepository, GraphNodesRepository]),
],
providers: [ModulesService],
controllers: [ModulesController],
exports: [ModulesService],
})
При запуске приложения я получаю следующую ошибку
[Nest] 3580 - 2020-03-15 11:55:19 [ExceptionHandler] Nest не может разрешить зависимости GraphNodesService (GraphNodesRepository,?, ModulesService). Убедитесь, что зависимость аргумента в индексе 1 доступна в контексте GraphNodesModule.
Конструктор GraphNodesService
равен
constructor(
@InjectRepository(GraphNodesRepository)
private readonly graphNodesRepository: GraphNodesRepository,
private readonly graphsService: GraphsService,
private readonly modulesService: ModulesService,
) {}
, поэтому Кажется, GraphsService
отсутствует. Но, как вы видите, я импортирую модуль, так что я ожидаю доступа к экспортированному сервису.
Как я могу это исправить?
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.