일반적으로 모듈은 한가지 일만 수행하는 소프트웨어 컴포넌트가 아니라, 여러 컴포넌트를 조합하여 작성한 좀 더 큰 작업을 수행하는 단위를 말한다.
Nest에서 모듈은 @Module()
데코레이터로 주석이 달린 클래스이다.
Nest 어플리케이션이 실행되기 위해서는 하나의 루트 모듈이 존재하고, 이 루트 모듈은 다른 모듈들로 구성된다.
@Module
데코레이터는 인자로 ModuleMetadata
를 받는다.
import
: 이 모듈에서 사용하기 위한 프로바이더를 가지고 있는 다른 모듈을 가져온다.controllers
/ providers
: 모듈 전반에서 컨트롤러와 프로바이더를 사용할 수 있도록 Nest가 객체를 생성하고 주입할 수 있도록 해 줍니다.export
: 이 모듈에서 제공하는 컴포넌트를 다른 모듈에서 import해 사용하고자 한다면 작성해야 한다.@@filename(boards.module)
**@Module**({
imports: [TypeOrmModule.forFeature([Board])],
controllers: [BoardsController],
providers: [BoardsService],
})
export class BoardsModule {}