
코드간의 응집도를 높이기 위해 쪼개진 코드 덩어리를 말함
nest.sj에서는 어플리케이션이 실행되기 위해 각각의 모듈을 모아 하나의 루트모듈을 구성해야함
루트모듈은 nest가 애플리케이션을 시작하는 시작점
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
})
export class CatsModule {}
@Module
controller, provider에 적용한다
새롭게 모듈을 만들면 app.mpdule의 import에 추가된다
모듈은 기본적으로 싱글턴이기 때문에 여러모듈간에 porvider의 인스턴스 공유가능
모든모듈은 공유모듈이기때문에 생성되면 재사용가능
다른 모듈에서 이 인스턴스를 사용하고 싶으면 모듈의 export옵션을 사용해 내보내기를 해야한다
provider를 사용해 주입하고 이 모듈의 provider에 선언을 해줘야 한다
@Module({
controllers: [CatsController],
providers: [CatsService],
})
export class CatsModule {}