티스토리 뷰

Nest

#5 Nest 모듈 (Module)

림디 2024. 12. 5. 15:00

모듈

모듈은 @Module() 데코레이터로 주석이 달린 클래스입니다. @Module() 데코레이터는 Nest가 애플리케이션 구조를 구성하는 데 사용하는 메타데이터를 제공합니다.

@Module() 데코레이터는 모듈을 설명하는 속성을 갖는 단일 객체를 사용합니다.

한 모듈에서 가져온 모듈을 다시 내보내기가 가능합니다.

예를 들어

  1. A 모듈안에 a Servicer가 있고
  2. B-모듈에서 imports: [A-모듈], exports: [A-모듈]
  3. C-모듈에서 imports: [B-모듈] 
  4. 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

출처: 
https://docs.nestjs.com/modules

'Nest' 카테고리의 다른 글

#6 Nest Gateway  (0) 2024.12.06
#4 Nest 커스텀 프로바이더  (0) 2024.12.05
#3 Nest 프로바이더(Provider)  (0) 2024.12.04
#2 Nest Controller  (1) 2024.12.04
#1 Nest 와 데코레이터(Decorator)  (0) 2024.12.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함