ValidationPipe
판매글을 등록하는 것에 있어서 dto에 있는 데코레이터가 작동하지 않는 것이다.
일부러 모든 항목을 공백으로 하여 등록을 했는데도 그대로 db에 데이터가 들어가는 것이었다.
ㅤ
튜터님께 여쭤보니 ValidationPipe가 main.ts 에 적용이 안되어있던 것이었다.
main.ts에 app.useGlobalPipes(new ValidationPipe());를 추가해주었더니 데코레이터가 잘 작동하는 것을 확인할 수 있었다.
ㅤ
문제는 martipart form에서 파일 업로드하는 컬럼은 dto에 들어가지 않아서 undefined로 값이 들어가는 것이었다.
파일을 무조건 업로드해야 하는 api로 만들었기 때문에 서비스에서 유효성 검사를 추가해주었다.
해당 컬럼의 길이가 0일 경우에 에러를 발생하도록 하였다.if (imgUrl.length === 0) {
throw new BadRequestException({ message: '이미지를 추가해주세요.' });
}