[TIL] NestJS 공부 17일차

비동기 제공자

가끔 애플리케이션이 비동기 작업이 완료된 후에 시작이 되야하는 경우가 많다. 서버를 제작할 때 DB설정이 될 때까지 서버를 키면 안되는 경우가 있다. 그렇다면 이 비동기 제공자를 사용하면 된다.

{
  provide: 'ASYNC_CONNECTION',
  useFactory: async () => {
    const connection = await createConnection(options);
    return connection;
  },
}

useFactory를 이용하여 async/await를 이용한 코드고, 이 제공자는 Promise를 반환한다.

동적 모듈

전에 간단하게 설명했던 그 동적 모듈이다. 지금은 완성됐을 때와 언제 사용하는 지를 소개할 것이다.

대부분 애플리케이션은 동적 모듈을 사용하지않는다. 애플리케이션은 제공자와 컨트롤러와 같은 것으로 정의한다. 이런 것들은 범위를 지정해줘야하지만 동적 모듈은 다르다.
우리는 UserModule을 제공하고 UsersService를 export한다.

import { Module } from '@nestjs/common';
import { UsersService } from './users.service';

@Module({
  providers: [UsersService],
  exports: [UsersService],
})
export class UsersModule {}

동적 모듈 사용 케이스

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ConfigModule } from './config/config.module';

@Module({
  imports: [ConfigModule],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ConfigModule } from './config/config.module';

@Module({
  imports: [ConfigModule.register({ folder: './config' })],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

좋은 웹페이지 즐겨찾기