본문 바로가기

Nest js/dependencies Error

Nest can't resolve dependencies of the DealService

728x90

NestJS 프레임워크에서 자주 볼 수 있는 에러가 참조 에러이다.  실제 아래의 에러가 발생하면 어떤 조치를 취하면 될까?

터미널 에러 발생 알림

 

1. 원인

If "MemberRepository" is a provider, is it part of the current DealModule? 여기서 추론 할 수있는게 바로 MemberRepsoitory를 프로바이더 이면 DealModule의 부분이냐? 이 Nestjs 프레임워크에 적응이 되어있지 않으면 이해가 조금 난해하고 헤매기 쉽다. 이 의미는 DealModule에 등록을 하고 MemberRepository를 주입해라 이런 의미다. 

 

[deal.service.ts파일] 여기에서 MemberRepository를 주입해서 사용하고 있는데!

@Injectable()
export class DealService {
  constructor(
    @InjectRepository(Deal)
    private readonly deals: Repository<Deal>, 
    @InjectRepository(Member)
    private readonly members: Repository<Member>,✅ MemberRepository를 주입해서 사용
    @InjectRepository(Robot)
    private readonly robots: Repository<Robot>
  ) {}



}

 

[deal.module.ts 파일] Member 엔티티가 빠져있어서 에러가 나고 있다. 

@Module({
  imports: [TypeOrmModule.forFeature([Order, OrderItem, Robot, Deal  ])], ✅Member엔티티 없음
  controllers:[DealController],
  providers: [DealService]
})

export class DealModule {
  static forRoot:any;
}

 

 

2. 해결 

@Module({
  imports: [TypeOrmModule.forFeature([Order, OrderItem, Robot, Deal, Member  ])], "Member 엔티티를 추가" 
  controllers:[DealController],
  providers: [DealService]
})

export class DealModule {
  static forRoot:any;
}

728x90