728x90
반응형
이전까지 만들었던 모듈을 좀 더 좋은 구조로 만들어보자.
우린 이런 식으로 Controller와 Service를 하나씩 만들었었다.
먼저 모듈을 생성한다는 아래 명령어를 실행해보자.
$nest g mo
그다음 이름을 movies로 하게 되면 아래와 같이 되는 것을 확인할 수 있다.
먼저 app.module.ts에 먼저 담겨있던 controller와 providers를 삭제한다.
app.module.ts
import { Module } from '@nestjs/common';
import { MoviesController } from './movies/movies.controller';
import { MoviesService } from './movies/movies.service';
import { MoviesModule } from './movies/movies.module';
@Module({
imports: [MoviesModule],
controllers: [],
providers: [],
})
export class AppModule {}
그다음 movies.module.ts를 아래와 같이 수정해보면 우리는 controller와 providers를 가진 모듈 한 개를 완성한 것이다.
movies.module.ts
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.ts에서의 controllers와 providers는 언제 사용이 될까?
먼저 아래 명령어를 실행해서 app.controller.ts를 생성하고 이름을 app이라 지어준다.
$nest g co
그다음 app.controller.ts를 아래 사진과 같이 옮기고 app 폴더를 삭제한다.
app.controller.ts
import { Controller } from '@nestjs/common';
@Controller('app')
export class AppController {}
처음 만들 때의 controller의 모습은 위의 코드와 같다.
우리가 첫 라우트 path를 지정할 때 @Controller 안에 이름을 지정을 했었는데, 지금까지 루트 라우터는 없었다.
루트 라우터를 만들어줄 차례다.
app.controller.ts
import { Controller, Get } from '@nestjs/common';
@Controller('')
export class AppController {
@Get()
home() {
return 'this is home'
}
}
이렇게 코드를 바꿔주면 home화면에 this is home 글자를 확인할 수 있을 것이다.
728x90
반응형
'Back-End > Nest.js' 카테고리의 다른 글
Nest.js | UNIT TESTING | 소개 (0) | 2021.09.30 |
---|---|
Nest.js | REST API | Express on NestJS (0) | 2021.09.29 |
Nest.js | REST API | DTOs and Validation(2) (0) | 2021.09.29 |
Nest.js | REST API | DTOs and Validation(1) (0) | 2021.09.29 |
Nest.js | REST API | Movies Service(2) (0) | 2021.09.29 |