Nest
#5 Nest 모듈 (Module)
림디
2024. 12. 5. 15:00
반응형
모듈
모듈은 @Module() 데코레이터로 주석이 달린 클래스입니다. @Module() 데코레이터는 Nest가 애플리케이션 구조를 구성하는 데 사용하는 메타데이터를 제공합니다.
@Module() 데코레이터는 모듈을 설명하는 속성을 갖는 단일 객체를 사용합니다.
한 모듈에서 가져온 모듈을 다시 내보내기가 가능합니다.
예를 들어
- A 모듈안에 a Servicer가 있고
- B-모듈에서 imports: [A-모듈], exports: [A-모듈]
- C-모듈에서 imports: [B-모듈]
- C-컨트롤러에서 a Service를 사용 가능하다.
전역 모듈
@Global() 데코레이터는 모듈을 글로벌 범위로 만듭니다.
글로벌 모듈은 일반적으로 루트 또는 코어 모듈에 의해 한 번만 등록되어야 합니다.
동적 모듈
Nest 모듈 시스템에는 동적 모듈이라는 강력한 기능이 포함되어 있습니다. 이 기능을 사용하면 공급자를 동적으로 등록하고 구성할 수 있는 사용자 지정 모듈을 쉽게 만들 수 있습니다.
import { Module, DynamicModule } from '@nestjs/common';
import { createDatabaseProviders } from './database.providers';
import { Connection } from './connection.provider';
@Module({
providers: [Connection],
exports: [Connection],
})
export class DatabaseModule {
static forRoot(entities = [], options?): DynamicModule {
const providers = createDatabaseProviders(options, entities);
return {
module: DatabaseModule,
providers: providers,
exports: providers,
};
}
}
forRoot() 메서드는 동기적으로 또는 비동기적으로(즉, Promise를 통해) 동적 모듈을 반환할 수 있습니다
Nest Js Doc Sample Code Git : https://github.com/nestjs/nest/tree/master/sample/25-dynamic-module