我试图将email
字段传递为可选字段,但是我想同时对其进行验证。
当前,它可以正常工作,但是当我开始在表单上键入email
并清除其值时,该字段变为空字符串,然后发生错误。
因此,是否有更好的解决方案可以将其作为null
,''
或valid
的电子邮件? -请注意,只有有效的电子邮件为unique
var validateEmail = function(email) {
var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
return re.test(email)
}
var userSchema = new mongoose.Schema({
email: {
type: String,
required: false,
trim: true,
lowercase: true,
index:true,
unique: true,
sparse: true,
validate: [validateEmail, 'Please fill a valid email address']
},
hash:{type: String},
salt:{type: String},
username: String,
}, {
collection: 'users'
})
提前谢谢。