किसी कारण से
validate: [ isEmail, 'Invalid email.']
validate()
परीक्षणों के साथ अच्छी तरह से खेल नहीं आता है।
const user = new User({ email: 'invalid' });
try {
const isValid = await user.validate();
} catch(error) {
expect(error.errors.email).to.exist; // ... it never gets to that point.
}
लेकिन नेवला 4.x (यह पुराने संस्करणों के लिए भी काम कर सकते हैं) अन्य वैकल्पिक विकल्प जो ईकाई परीक्षण के साथ हाथ में हाथ काम है।
एकल सत्यापनकर्ता:
email: {
type: String,
validate: {
validator: function(value) {
return value === '[email protected]';
},
message: 'Invalid email.',
},
},
एकाधिक प्रमाणकों:
email: {
type: String,
validate: [
{ validator: function(value) { return value === '[email protected]'; }, msg: 'Email is not handsome.' },
{ validator: function(value) { return value === '[email protected]'; }, msg: 'Email is not awesome.' },
],
},
इसकी पुष्टि करने के लिए:
मेरे सिफारिश: विशेषज्ञों के कि छोड़ दो, जो निवेश किया है सैकड़ों निर्माण में घंटों का उचित सत्यापन उपकरण में आईएनजी।(पहले से ही रूप में अच्छी तरह here में उत्तर)
npm install --save-dev validator
import { isEmail } from 'validator';
...
validate: { validator: isEmail , message: 'Invalid email.' }
अद्भुत बनाने के लिए isAsync सेट! मुझे परीक्षण() विधि के बारे में भी पता नहीं था। – Tamas
बेहतर प्रदर्शन के लिए आपको फ़ंक्शन के बाहर रेगेक्स को परिभाषित करना चाहिए। – Killah
यह रेगेक्स कुछ मान्य ईमेल मान्य करने में विफल रहता है, जैसे कि लेफ्टथैंड पक्ष पर प्लस साइन शामिल हैं। –