2016-06-08 134 views
0

架构中,我有猫鼬架构验证

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不是一个函数。谁能帮我?

回答

0

您需要使用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); 
    } 
    }); 
}); 
+0

感谢,它帮助我)! – MrGabriel