Ошибка, которая говорит о том, что зависимость не может быть разрешена, недостаточно ясна. В настоящее время вывод об ошибке гласит:
[ExceptionHandler] Nest can't resolve dependencies of the LeadService (LeadRepository, ?). Please make sure that the argument dependency at index [1] is available in the LeadModule context.
Из этого вывода я могу сделать вывод, что зависимость ConsentService
от моего LeadService
. См. LeadService
конструктор ниже.
Кроме того, в выводе также содержится следующее предложение:
Потенциальные решения:
- Если зависимость является поставщиком, является ли он частью текущего LeadModule?
Мой ответ: Это поставщик, но он не является частью текущего модуля. Это провайдер из ConsentModule. Смотрите определение ConsentModule.
- Если зависимость экспортируется из отдельного модуля @Module, импортируется ли этот модуль в LeadModule?
@Module({
imports: [ /* the Module containing dependency */ ]
})
Мой ответ: Да, он экспортируется из ConsentModule, и он импортируется в LeadModule, поэтому я не понимаю, почему это не получается.
Код ввода
ConsentService
@Injectable()
export class ConsentService {
constructor(@InjectRepository(Consent) private repository: Repository<Consent>) {}
}
LeadService
@Injectable()
export class LeadService<T extends LeadPayload> {
constructor(
@InjectRepository(Lead)
private leadRepository: Repository<Lead>,
@Inject()
private consentService: ConsentService
) {}
}
ConsentModule
import { Module } from '@nestjs/common';
import { ConsentService } from './consent.service';
import { Consent } from '../db/models';
import { TypeOrmModule } from '@nestjs/typeorm';
@Module({
imports: [TypeOrmModule.forFeature([Consent])],
providers: [ConsentService],
exports: [ConsentService]
})
export class ConsentModule {}
LeadModule
import { Module } from '@nestjs/common';
import { LeadService } from './lead.service';
import { Lead } from '../db/models';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ConsentModule } from './consent.module';
@Module({
imports: [ConsentModule, TypeOrmModule.forFeature([Lead])],
providers: [LeadService],
exports: [LeadService]
})
export class LeadModule {}
AppModule
@Global()
@Module({
imports: [
ConsentModule,
LeadModule,
TypeOrmModule.forRoot({
...getDbConnectionProperties(),
entities: [Consent, Lead]
})
],
controllers: [
DevController,
HealthController
],
providers: []
})
export class AppModule {}
Я хотел бы знать, почему именно происходит ошибка, потому что я думаю, что все правильно объявил