การระบุข้อความแสดงข้อผิดพลาดที่กำหนดเองในการตรวจสอบความถูกต้องของสตริงในพังพอน [ซ้ำ]

Aug 20 2020

ฉันกำลังพยายามตรวจสอบความถูกต้องของช่องเพศซึ่งอาจเป็นชายหรือหญิงก็ได้ดังนั้นฉันจึงใช้ตัวตรวจสอบความถูกต้องของพังพอน "enum" สำหรับสตริง แต่ฉันไม่สามารถหาวิธีระบุข้อความแสดงข้อผิดพลาดที่กำหนดเองได้

ฉันลองห่อ enum ในอาร์เรย์เช่นนี้:

enum: [["male", "female"], "custom error message]

เนื่องจากไวยากรณ์นี้ได้รับการสนับสนุนโดยการตรวจสอบพังพอนในตัวอื่น ๆ แต่ไม่มีประโยชน์

ฉันสามารถเขียนโปรแกรมตรวจสอบความถูกต้องที่กำหนดเองเพื่อทำสิ่งเดียวกันโดยใช้ regex ได้ แต่ฉันสงสัยว่าฉันขาดอะไรไปหรือเปล่าเพราะมันดูแปลกนิดหน่อยที่ฉันไม่สามารถระบุข้อความแสดงข้อผิดพลาดได้และเอกสารพังพอนก็เบาบางลงเล็กน้อย คำนึงถึง

คำตอบ

1 SpackJarrow Aug 20 2020 at 11:29

ตามเอกสารไม่มีวิธีที่ตรงไปตรงมาในการทำเช่นนี้ คุณจะต้องเรียกใช้ด้วยตนเองdoc.validateSync()เพื่อตรวจสอบข้อผิดพลาด

อย่างไรก็ตามตามคำตอบสำหรับคำถามนี้สิ่งนี้ควรได้ผล:

gender: {
        type: String,
        enum: {
            values: ['male', 'female'],
            message: 'Your error message'
        }
    }