Module
@Module() 데코레이터가 붙어 있는 클래스
각 어플리케이션에는 각각의 module이 존재 → @Module()를 이용하여 애플리케이션의 전체 구조를 이해하고 조직화하는 데 필요한 메타데이터를 제공
@Module() 가 metadata 를 제공 → NestJS 에서 어플리케이션 구조를 조직화 하기 위해 사용
예시 구조
src
| - cats
// cats/ cats.module.ts
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
})
export class CatsModule {
constructor(private catsService: CatsService)
}
// app.modules.ts
import { Module } from '@nestjs/common';
import { CatsModule } from './cats/cats.module';
@Module({
imports: [CatsModule],
})
export class AppModule {}
Module 의 다양한 활용방식
Module re-exporting
@Module({
imports: [CommonModule],
exports: [CommonModule],
})
export class CoreModule {}
Global module
import { Module, Global } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Global() // <<
@Module({
controllers: [CatsController],
providers: [CatsService],
exports: [CatsService],
})
export class CatsModule {}
- 모든 것을 global로 선언하는 것은 추천되지 않는 방식
Dynamic modules 방식은 추후에 : https://docs.nestjs.com/fundamentals/dynamic-modules
'프로그래밍 > Nest.js' 카테고리의 다른 글
[ NestJS ] [ TypeORM ] 1: N 관계 형성, 수정, 삭제 (0) | 2024.04.27 |
---|---|
[ NestJS] [errror] No metadata for "User" was found. (0) | 2024.04.23 |
[ NestJS ] Providers (0) | 2024.04.18 |
[NestJS] TypeORM 설정방법 (0) | 2024.04.17 |
[ NestJS] DTO? (0) | 2024.04.17 |