여러 컴포넌트를 조합하여 작성한 좀 더 큰 작업을 수행하는 단위이다. 이곳에는 전에 본 공급자와 서비스들이 모듈 단위로 등록되게 된다.
Nest 어플리케이션이 실행되기 위해서는 하나의 루트 모듈이 존재하고 이 루트 모듈(일반적으로 AppModule)은 다른 모듈들로 구성되도록 하는 것이다. 이렇게 모듈로 쪼개는 이유는 앞서 설명한 여러 모듈에게 각기 맡은 바 책임을 나누고 응집도를 높이기 위함이다.
NestJS docs - 모듈
NestJS로 배우는 백엔드 프로그래밍 - 모듈
cats.module.ts
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
exports: [CatsService]
})
export class CatsModule {}
이제 가져오는 모든 모듈 CatsModule은 에 액세스할 수 있으며 CatsService이를 가져오는 다른 모든 모듈과 동일한 인스턴스를 공유한다.