Nest.js service 주입 관련
Nest.js service 주입 관련
Nest.js를 사용하며 module, service등을 주입하며 헷갈려 기록.
// another.module.ts
@Module({
imports: [CommonService],
providers: [AnotherService, CommonService]
})
위의 방식은 잘못된 사용 방식이다.
another모듈 안에서 commonService를 주입 받아 사용하고 싶었음.
commonServ ice를 import 해 왔고, anotherModule에서
사용하기 위해 providers에 등록 하였음. (에러남)
바른 방식:
@Module({
providers: [CommonService],
exports: [CommonService]
})
// another.module.ts
@Module({
imports: [CommonModule],
providers: [AnotherService]
포인트
1.providers: 모듈 내부에서 사용할 서비스 정의
2.exports: 다른 모듈에서 사용할 수 있도록 공개하는 서비스 정의
3.다른 모듈에서 서비스를 주입받고 싶을때 모듈만 import한다.
4.서비스는 모듈을 통해서 공유 되어야 함.
5.imports는 모듈만 받을 수 있습니다 (서비스를 직접 임포트 할 수 없음)
# Nest.js service 주입 관련 Nest.js를 사용하며 module, service등을 주입하며 헷갈려 기록. ```js // another.module.ts @Module({ imports: [CommonService], providers: [AnotherService, CommonService] }) ``` 위의 방식은 잘못된 사용 방식이다. another모듈 안에서 commonService를 주입 받아 사용하고 싶었음. commonServ ice를 import 해 왔고, anotherModule에서 사용하기 위해 providers에 등록 하였음. (에러남) 바른 방식: ```js @Module({ providers: [CommonService], exports: [CommonService] }) // another.module.ts @Module({ imports: [CommonModule], providers: [AnotherService] ``` ### 포인트 1.providers: 모듈 내부에서 사용할 서비스 정의 2.exports: 다른 모듈에서 사용할 수 있도록 공개하는 서비스 정의 3.다른 모듈에서 서비스를 주입받고 싶을때 모듈만 import한다. 4.서비스는 모듈을 통해서 공유 되어야 함. 5.imports는 모듈만 받을 수 있습니다 (서비스를 직접 임포트 할 수 없음)