본문 바로가기

오류해결

Nestjs 오류 Nest can't resolve dependencies... 의존성 주입 문제 해결

 

Nestjs를 사용해서 로직을 구현하는 도중 의존성 오류가 발생했다. 다른 모듈을 연결할 때는 이런 오류가 안났고 항상 하던대로 연결을 시도했다. 근데 안됐다. 왜지? 한 두시간 동안 삽질을 하다가 구글링을 통해서 방법을 알게됐다. 

 

문제는 서비스간의 의존성 주입이 쌍방향으로 되어있어 주입이 되지 않는 오류였다. 

 

 

전방참조를 사용하면 Nest가 유틸리티 함수를 사용하여 아직 정의되지 않은 클래스를 참조해서 해결할 수 있습니다.

@Injectable()
export class LikeService {
  constructor(
    @InjectRepository(Like) private readonly likeRepository: Repository<Like>,
    @Inject(forwardRef(() => PostService))
    private readonly postService: PostService,
  ) {}
  
  }

 

이와 같이 LikeService와 postService가 의존관계라고 할 때 forwardRef()와 @Inject() 데코레이터를 사용하여 이 문제를 해결할 수 있었습니다. 

 

참조 문서 : 

https://docs.nestjs.com/fundamentals/circular-dependency

 

Documentation | NestJS - A progressive Node.js framework

Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea

docs.nestjs.com

https://velog.io/@jep1995/nestJS%EC%98%A4%EB%A5%98-Nest-cant-resolve-dependencies-of-the

 

nestJS오류 (Nest can't resolve dependencies of the..)

nestJS를 이용해서 서버를 구축하던 중 데이터 베이스 쪽을 만지다 아래와 같은 오류가 발생했다. 평소 같았으면 의존성 주입을 제대로 안해줬구나! 하고 해결했을텐데, 웬걸... 이미 의존성 주입

velog.io