NestJS 활용하기(2) - module, controller

이태훈·2023년 11월 3일
0

NestJS

목록 보기
2/6

시작하기 앞서

새롭게 시작하기 위해 기본으로 제공된 코드 중 app.module.ts와 main.ts를 제외하고 다른 파일들을 지워준다. app.module.ts 파일도 아래와 같이 기본 형태만 남겨둔다.

import { Module } from '@nestjs/common';

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

module 생성

이제 원하는 모듈을 생성하기 위해 아래와 같은 명령어를 터미널 창에 입력해주면 된다. 필자는 간단한 게시판을 만들어보기 위해 모듈의 이름을 board로 해서 진행했다.

nest g module board

이렇게 하면 board 폴더가 생기면서 내무에 board.module.ts 파일이 생성되고 app.module.ts에는 자동으로 새로 만든 모듈이 import 된다. 개발자가 해야 하는 과정이 너무나도 자연스럽게 자동으로 진행되었다...!!

controller 생성

다음으로 해당 모듈에 대한 controller를 생성하기 위해서는 터미널 창에 아래와 같은 명령어를 적어주면 된다.

nest g controller board --no-spec

그러면 또 자동으로 board.controller.ts 파일이 만들어지고 내부에 컨트롤러가 작성되며, 이번엔 board.module.ts에 controller가 자동으로 입력된다.

핸들러 설정

이렇게 생성된 controller 내부에 @Get(), @Post()와 같은 데코레이터를 통해 http 메서드를 설정하고 그에 따른 핸들러 함수들을 정의하면 된다. 이때 데코레이터에 경로 문자열을 추가하여 특정 경로에 대한 핸들러를 설정할 수 있다.

import { Controller, Post, Body, UsePipes } from '@nestjs/common';
import { CustomPipe } from './custom.pipe';
import { CreateBoardDto } from './dto/create-board.dto';

@Controller('board')
export class ItemsController {
  
  @Post('/:id/comment')
  @UsePipes(new CustomPipe())
  create(@Body() createBoardDto: CreateBoardDto) {
  // 핸들러 로직
  }
}
profile
지속가능한 개발자를 꿈꿉니다

0개의 댓글