3. nest validator
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와 다르게 상당히 편한것을 볼 수 있다. 하지만, 이런것들을 잘 사용하기에 앞서 어떤 것들이 있는지 잘 알고 써야겠...
Author And Source
이 문제에 관하여(3. nest validator), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jaymee/3.-nest-validator저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)