Module
- movies.module 생성
import { Module } from '@nestjs/common';
import { MoviesController } from './movies.controller';
import { MoviesService } from './movies.service';
@Module({
controllers: [MoviesController],
providers: [MoviesService],
})
export class MoviesModule {}
- app.module: 페이지 home 활용
import { Module } from '@nestjs/common';
import { MoviesModule } from './movies/movies.module';
import { AppController } from './app.controller';
@Module({
imports: [MoviesModule],
controllers: [AppController],
providers: [],
})
export class AppModule {}
* main.ts에서 AppModule 생성 시 app.module에 import된 모듈을 하나의 모듈로 생성
NestJS에서는 모듈별 개발을 지향

의존성 주입 Dependency Injection
- module.ts에서 provider 설정으로 의존성 주입
import { Module } from '@nestjs/common';
import { MoviesController } from './movies.controller';
import { MoviesService } from './movies.service';
@Module({
controllers: [MoviesController],
providers: [MoviesService], // 의존성 주입 설정
})
export class MoviesModule {}
- Controller에서 type만 선언해도 service를 가져옴: 생성자를 이용한 의존성 주입 권장
import { MoviesService } from './movies.service';
@Controller('movies') //controller 단위 url 설정
export class MoviesController {
constructor(private readonly moviesService: MoviesService) {}// 타입 선언으로 의존성 주입
...
}
- Service에 @injectable() decorator 작성
@Injectable() // DI 대상 설정
export class MoviesService {
...
}'개발 > JavaScript' 카테고리의 다른 글
| [NestJS] logger, Configuration (0) | 2022.09.02 |
|---|---|
| [NestJS] Unit Testing, End-to-End(E2E) (0) | 2022.08.10 |
| [NestJS] DTO, 유효성 검사 Validation (0) | 2022.08.10 |
| [NestJS] Controller, Service (0) | 2022.08.10 |
| [NestJS] Project setup, 구조 (0) | 2022.08.10 |