inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

Validation Message 일반화 하기

length에서 min값만 설정하고 싶을 때 max 없이 validationOptions을 어떻게 전달할 수 있나요..?

343

purnsup90

작성한 질문수 6

0

length에서 max값을 전달 안해주고 min만 설정하고 싶을때

if(args.constraints.length===2){

} else}{

}

여기서 else 가 실행되어야 하는데 max 값 없이 validationOptions만을 전달하면 validationOptions가 두번째 인자로 전달되는 것 아닌가요..? 이렇게 하면 에러 나는데.. max 값에 undefined나 null을 넣어도 안되는 것 같습니다. 어떻게 max 값 없이 validationOptions를 실행할 수 있나요..?

 

javascript typescript rest-api nestjs backend

답변 2

0

thunderblast

시간이 좀 지나서 이미 찾아서 사용중이실수도 있고 보실진 모르겠습니다만

경우에 따라서

@MinLength() 와 @MaxLength() 를 사용하실 수 있고,

@Length(0, max값, {})

@Length(min값, Number.MAX_VALUE, {})

등으로도 사용하실 수 있을 것 같습니다.

0

thunderblast

저도 강의 보면서 테스트 해 보니깐

질문자님 말씀대로 구현 하려면 (max를 지정하지 않은채로 @Length() 설정 )

@Length(2, undefined, {}) 으로 추가하는 경우

(args: ValidationArguments) 로 받아오는 인자의 args.constraints 가 [2, undefined] 이더라구요

max가 필요치 않은 조건이라면 @MinLength() 를 사용하는게 의도된 방식일 것 같지만, @Length() 하나만 사용해서 일반화 해서 사용하고 싶다면

이런식으로도 해결 할 수도 있을 것 같습니다!!

import { ValidationArguments } from 'class-validator';

export const lengthValidationMessasge = (args: ValidationArguments) => {
  const isOnlyMin =
    args.constraints.length < 2 || args.constraints[1] === undefined;
  if (isOnlyMin) {
    return `${args.property}는 최소 ${args.constraints[0]} 글자를 입력해주세요`;
  } else {
    return `${args.property}는 ${args.constraints[0]} ~ ${args.constraints[1]} 글자를 입력해주세요`;
  }
};

이 때 constraints가 0개나 1개인 케이스가 가능할지는 모르겠지만요

0

코드팩토리

안녕하세요!

혹시 Min annotation을 찾고 계시는게 맞을까요?

@Min(최소값) <- 이렇게 사용 할 수 있습니다.

예제 링크 보내드립니다.

https://github.com/typestack/class-validator?tab=readme-ov-file#validating-promises

감사합니다!

cascade 질문

0

40

1

@types/bcrypt 설치과정이 누락된것같습니다.

0

49

1

process.env port key 에러

0

47

1

추상화

0

50

1

[공유] DTO optional 필드가 undefined로 잡혀 TypeORM 조건이 깨지는 현상

0

101

2

where 키워드가 들어가는 메서드와 아닌 메서드

0

57

1

BearerTokenGuard에서 db를 조회해서 유저 정보를 불러오는 이유?

0

72

1

app.controller app.service 는 지워도되나요?

0

70

1

@JoinColumn을 쓰는 경우와 안쓰는 경우의 차이

0

79

1

포트 3000에서 listen하는 곳까지 넘어가지 않습니다.

0

68

1

PickType 사용 시 `as const`를 꼭 사용해야 하나요?

0

102

2

socket connect 오류

0

98

2

강의를 들으면서 궁금한 점

0

97

2

DELETE 요청의 반환값은 어떤 기준으로 결정하는 게 좋을까요?

0

60

2

커리큘럼 질문

0

100

2

put 요청은 언제

0

90

3

typeorm VS prisma

0

351

2

142 강의 > 4:00 > 포스트멘 활용 관련 질문 드립니다.

0

78

2

User 데코레이터 버그 수정 전달드립니다.

0

67

1

git 주소 부탁드립니다.

0

113

2

nest g resource 명령어 에러

0

99

2

로그인 엔드포인트 관련 질문

0

85

2

yarn으로 express 다운 후 node 2_server.js 실행 안되는 경우

0

148

3

"흔히 사용되는 메서드" 강의 관련 질문입니다~

0

95

2