아티클의 제목과 같은 에러가 발생했는데, 전문은 아래와 같다.
Logger로 기록한 error
[Nest] 64896 - 2022. 10. 13. 오후 8:00:56 ERROR [ExceptionHandler] Nest can't resolve dependencies of the ScriptService (FirstRepository, SecondRepository, ThirdRepository, ?). Please make sure that the argument SentenceRepository at index [3] is available in the ScriptModule context.
Potential solutions:
- If SentenceRepository is a provider, is it part of the current ScriptModule?
- If SentenceRepository is exported from a separate @Module, is that module imported within ScriptModule?
@Module({
imports: [ /* the Module containing SentenceRepository */ ]
})
에러 내용 해석
Nest가 ScriptService에 ?에 해당하는 것의 의존성 주입을 할 수 없다는 뜻이다.
나는 Potential solutions 중 첫번째에 해당하는 간단한 오류였다.
ScriptModule에 SentenceRepository를 import하지 않고, ScriptService의 생성자에 추가했기 때문에 발생한 오류다.
해결 방법
// script.module.ts
@Module({
imports: [
TypeOrmModule.forFeature([
ScriptRepository, ScriptExampleRepository, UserRepository, NewsRepository
]),
],
controllers: [ScriptController],
providers: [ScriptService, JwtModule]
})
export class ScriptModule {}
위와 같이 module에, service에서 사용한 repository를 import함으로써
의존성 주입에서 발생한 error를 수정할 수 있었다.