체인의정석

Nest.js ) Modules 본문

개발/backend

Nest.js ) Modules

체인의정석 2021. 10. 15. 15:26
728x90
반응형

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

 

다음과 같이 nest.js 에서는 여러 모듈을 체계적으로 관리할 수 있다. 

컨트롤러와 프로바이더를 앞에서 따로 파일로 작성했기 때문에 이러한 모듈 파일에서는 파일로 작성한 부분을 모듈로 만들어서 관리해주는 역할을 하게 된다. 모듈들을 각각 인스턴스화 시킨다음에 하나로 모아주는 역할로 보면 되겠다.

처음에 기본 코드를 불러올 때 이미 작성이 된 내용을 현재 컨트롤러와 서비스에 맞게 수정을 해보았다.

 

addresses.module.ts

import { Module } from '@nestjs/common';
import { AddressesService } from './service/addresses.service';
import { AddressesController } from './controller/addresses.controller';

@Module({
  controllers: [AddressesController],
  providers: [AddressesService]
})
export class AddressesModule {}

또 이런 모듈들을 모아서 관리하는 하나의 모듈이 위에 다시 위치하게 된다.

 

app.module.ts

import { Module } from '@nestjs/common';
import { AddressesModule } from './addresses/addresses.module';

@Module({
  imports: [AddressesModule],
})
export class AppModule {}

 

나중에 하나의 모듈을 더 추가시킬 예정이다.

 

addresses.module.ts

import { Module } from '@nestjs/common';
import { AddressesService } from './service/addresses.service';
import { AddressesController } from './controller/addresses.controller';

@Module({
  controllers: [AddressesController],
  providers: [AddressesService],
  exports: [AddressesService]
})
export class AddressesModule {}

이런식으로 모듈에 exports와 함께 다른곳에서도 사용하고 싶은 모듈을 넣어주면 다른곳에서도 해당 모듈을 사용할 수 있게 된다.

복잡한 구조일 수록 이런 구조를 잘 짜는게 중요해 보인다.

코드리뷰를 받으면 아마 고칠 사항이 많아질거 같다.

 

이러한 모듈 파일의 위치는 가장 상단에 위치하게 된다.

 

 

 

 

 

 

출저 : https://docs.nestjs.kr/modules

 

네스트JS 한국어 매뉴얼 사이트

네스트JS 한국, 네스트JS Korea 한국어 매뉴얼

docs.nestjs.kr

 

728x90
반응형

'개발 > backend' 카테고리의 다른 글

Nest.js) type ORM , entities 정의하기  (0) 2021.10.18
Nest.js) Database 연동하기  (0) 2021.10.15
Nest.js ) Providers  (0) 2021.10.15
Nest.js ) - Controllers  (0) 2021.10.15
Nest.js ) - first Step  (0) 2021.10.15
Comments