3. nest validator

4461 단어 nestnest

post method는 get과 비슷하다 (당연한 소리지만...)

// controller
  @Post('/content')
  @HttpCode(201)
  async returing(@Body() body: HelloBodyDTO): Promise<string> {
    try {
      const content = body.content;
      console.log(content);
      return await this.helloService.returing(content);
    } catch (error) {
      this.logger.error(error?.message ?? '');
      throw error;
    }
  }

뭐 이런식이다.
첫줄에 라우팅해주고, 둘째 줄에 있는 http code decorator은 get은 기본적으로 200, post는 기본적으로 201값을 가진다. 다른 요청에 따른 http code를 개발자가 수동으로 수정할 수 있다.

import { IsDefined, IsNotEmpty } from 'class-validator';

export class HelloBodyDTO {
  @IsDefined()
  @IsNotEmpty()
  content!: string;
}

dto는 위와 같이 작성하는데, content에 해당하는 decorator와 같은 validator-pipe 를 사용하기 위해서는 class-transformer의 버전이 0.5.0이하로 떨어져야 한다.
TypeError: classTransformer.plainToClass is not a function
위와 같은 문제가 발생한다.

$ npm install --save-dev [email protected] 를 통해 해결할 수 있다.

nest에서는 validator가 너무 잘되어있어 express와 다르게 상당히 편한것을 볼 수 있다. 하지만, 이런것들을 잘 사용하기에 앞서 어떤 것들이 있는지 잘 알고 써야겠...

좋은 웹페이지 즐겨찾기