jjinny_0609
냐냥
jjinny_0609
전체 방문자
오늘
어제
  • 분류 전체보기 (249)
    • IT (18)
      • Eclipse (1)
      • 라즈베리파이 (8)
      • 정보처리기사 (2)
      • 팀 프로젝트 (5)
      • 자료구조 (1)
      • CS 지식 (0)
    • 프로그래밍 언어 (75)
      • Java (33)
      • 파이썬 (4)
      • Node.js (38)
    • 프론트엔드(Frontend) (83)
      • HTML (7)
      • CSS (8)
      • JavaScript (10)
      • jQuery (2)
      • React (50)
      • Vue.js (6)
    • 백엔드(Backend) (62)
      • 네트워크 (1)
      • 데이터베이스 (49)
      • Spring (6)
      • JSP (6)
    • 협업 도구 (6)
      • Git & GitHub (6)
    • 리뷰 (1)
      • 향수 (1)
    • Game Engine (2)
      • 언리얼 엔진5 (1)
      • Unity (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그관리 홈
  • 글쓰기
  • 글관리

공지사항

인기 글

hELLO · Designed By 정상우.
jjinny_0609

냐냥

[MongoDB] Mongoose 유효성 검사 오류 해결하기
백엔드(Backend)/데이터베이스

[MongoDB] Mongoose 유효성 검사 오류 해결하기

2023. 12. 2. 22:33
728x90

Mongoose를 사용하면 데이터베이스에 값을 저장하기 전에 다양한 유효성 검사를 수행할 수 있습니다. 그 중에서도 커스텀 유효성 검사기 메시지를 설정하여 더 직관적이고 사용자 친화적인 오류 메시지를 만들어보겠습니다. 또한, enum을 이용한 다양한 유효성 검사도 살펴보겠습니다.

1. 커스텀 유효성 검사기 메시지 설정

Mongoose에서는 min, max 등의 내장된 유효성 검사기를 사용할 때 커스텀한 오류 메시지를 설정할 수 있습니다. 이를 통해 사용자에게 더 명확한 정보를 전달할 수 있습니다.

const productSchema = new mongoose.Schema({
  name: String,
  price: {
    type: Number,
    min: [0, 'Price must be positive ya dodo!'],
  },
});

const Product = mongoose.model('Product', productSchema);

// 음수로 가격을 설정하여 유효성 검사 오류 발생
const product = new Product({ name: 'Test Product', price: -5 });
product.save()
  .catch((error) => {
    console.error(error.message); // Price must be positive ya dodo!
  });

2. enum을 이용한 유효성 검사

Enum은 특정 값들 중 하나만을 허용하는 유효성 검사를 수행할 때 사용됩니다. 예시로 size 속성이 'S', 'M', 'L' 중 하나여야 하는 경우를 살펴보겠습니다.

const productSchema = new mongoose.Schema({
  name: String,
  categories: [String],
  size: {
    type: String,
    enum: ['S', 'M', 'L'],
  },
});

const Product = mongoose.model('Product', productSchema);

// 유효하지 않은 size 값으로 상품 생성
const jersey = new Product({
  name: 'Cycling Jersey',
  categories: ['Cycling'],
  size: 'XS',
});

jersey.save()
  .catch((error) => {
    console.error(error.message); // 'XS'는 size에서 유효한 enum 값이 아닙니다.
  });

이와 같이 enum을 사용하면 특정 값들로 제한된 상황에서 유효성 검사를 간편하게 수행할 수 있습니다.

 

Mongoose의 다양한 유효성 검사 옵션을 적절히 활용하면 데이터의 일관성을 유지하고 예기치 못한 오류를 방지할 수 있습니다. 커스텀 메시지 설정이나 enum을 활용하여 사용자 경험을 향상시킬 수 있으니, 프로젝트에 맞게 적절히 활용해보세요.

728x90

'백엔드(Backend) > 데이터베이스' 카테고리의 다른 글

[MongoDB] 정적 메서드 추가하기  (0) 2023.12.04
[MongoDB] Mongoose 인스턴스 메서드로 모델 확장하기  (0) 2023.12.03
[MongoDB] Mongoose 업데이트 유효성 검사하기  (0) 2023.12.01
[MongoDB] 추가 스키마 제약조건  (0) 2023.11.30
[MongoDB] Mongoose 스키마 유효성 검사  (1) 2023.11.30
    jjinny_0609
    jjinny_0609
    뉴비 개발자의 학습 내용을 정리한 블로그입니다.

    티스토리툴바