猫鼬架构验证
问题描述:
架构中,我有猫鼬架构验证
email: {
type: String,
required: [true, "Email is required"],
unique: true
}
for validation with "unique" i am create
schema.path('email').validate(function(v){
mongoose.models['User'].findOne({email: this.email}, function(err, user){
if(err){
throw err;
}else{
if(user){
this.invalidate("email", "Email exists!");
}
}
});
}, null);
,但我有一个错误: this.invalidate不是一个函数。谁能帮我?
答
您需要使用asynchronous validation:
schema.path('email').validate(function(email, callback) {
mongoose.models['User'].findOne({ email : mail }, function(err, user) {
if (err) {
return callback(false, 'Unable to check for e-mail uniqueness due to database error');
} else if (user) {
return callback(false, 'E-mail should be unique');
} else {
return callback(true);
}
});
});
感谢,它帮助我)! – MrGabriel