728x90
반응형

이전까지 만들었던 모듈을 좀 더 좋은 구조로 만들어보자.

 

app.module.ts

우린 이런 식으로 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
반응형

+ Recent posts