การระบุข้อความแสดงข้อผิดพลาดที่กำหนดเองในการตรวจสอบความถูกต้องของสตริงในพังพอน [ซ้ำ]
ฉันกำลังพยายามตรวจสอบความถูกต้องของช่องเพศซึ่งอาจเป็นชายหรือหญิงก็ได้ดังนั้นฉันจึงใช้ตัวตรวจสอบความถูกต้องของพังพอน "enum" สำหรับสตริง แต่ฉันไม่สามารถหาวิธีระบุข้อความแสดงข้อผิดพลาดที่กำหนดเองได้
ฉันลองห่อ enum ในอาร์เรย์เช่นนี้:
enum: [["male", "female"], "custom error message]
เนื่องจากไวยากรณ์นี้ได้รับการสนับสนุนโดยการตรวจสอบพังพอนในตัวอื่น ๆ แต่ไม่มีประโยชน์
ฉันสามารถเขียนโปรแกรมตรวจสอบความถูกต้องที่กำหนดเองเพื่อทำสิ่งเดียวกันโดยใช้ regex ได้ แต่ฉันสงสัยว่าฉันขาดอะไรไปหรือเปล่าเพราะมันดูแปลกนิดหน่อยที่ฉันไม่สามารถระบุข้อความแสดงข้อผิดพลาดได้และเอกสารพังพอนก็เบาบางลงเล็กน้อย คำนึงถึง
คำตอบ
ตามเอกสารไม่มีวิธีที่ตรงไปตรงมาในการทำเช่นนี้ คุณจะต้องเรียกใช้ด้วยตนเองdoc.validateSync()
เพื่อตรวจสอบข้อผิดพลาด
อย่างไรก็ตามตามคำตอบสำหรับคำถามนี้สิ่งนี้ควรได้ผล:
gender: {
type: String,
enum: {
values: ['male', 'female'],
message: 'Your error message'
}
}