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 |