【问题标题】:Mongoose schema validation猫鼬模式验证
【发布时间】:2016-06-09 00:23:15
【问题描述】:

在我拥有的架构中

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

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    你需要使用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);
        }
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-18
      • 2011-11-14
      • 1970-01-01
      • 2021-06-20
      • 2014-01-16
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      相关资源
      最近更新 更多