개발 마라톤

10/23 - Mongoose Scheme 정규식, 조건 정의 본문

--- Project ---/CharFlyer : 캐플라이어

10/23 - Mongoose Scheme 정규식, 조건 정의

망__고 2023. 10. 24. 10:54

Mongoose Scheme 정규식, 조건 정의

프론트엔드는 input 란에서 이벤트 핸들러를 통해 유효성 검사를 진행할 수 있었다.

백엔드에서는 들어온 데이터를 미들웨어 등으로 검사할 수 있을 것 이다.

이번에는 백엔드에서 Scheme 자체에 정규식과 조건을 주어 유효성 검사를 진행하는 방법을 적용해보았다.

 

1. match 사용

    email: {
      type: String,
      required: true,
      unique: true,
      match:
        /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i,
    },

match 옵션을 사용하여 정규식을 적용할 수 있다.

위의 예시는 Email임을 판별하는 정규식을 적용한 예시이다.

 

2. validate 사용

    preferredTags: {
      type: Array<String>,
      validate: [
        (tags: Array<String>) => {
          if (tags.length < 1) return true;

          const maxLength = 10;
          let isWrong = false;

          tags.forEach((tag) => {
            if (tag.length > maxLength) {
              isWrong = true;
              return;
            }
          });

          return isWrong;
        },
      ],
    },

validate 옵션을 사용하여 입력 데이터에 조건식을 적용할 수 있다.

위의 예시는 받아온 데이터를 tags라는 매개변수로 받아와,

화살표 함수 내부에서 if나 forEach를 통해 내부 데이터를 검사 후,

Boolean 값을 반환함으로써 데이터를 받아들일 지, 거부할 지를 결정하도록 작성한 예시이다.

Comments