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