【发布时间】:2015-05-09 08:22:28
【问题描述】:
我正在创建一个用户模型,该模型将创建不同的策略,例如本地、facebook、gmail……我希望每个对象都进行自己的验证,但如果我没有将值放入让我们说本地,我不想要验证此字段并得到错误。
例如:
var UserSchema = new Schema({
local: {
email : {
type : String,
required: true,
validate: emailValidator,
index : {
unique: true
}
},
firstName: {
type : String,
validate: nameValidator,
required: true
},
password : {
type : String,
validate: passwordValidator,
required: true
}
},
facebook: {
id : String,
email: String,
name : String
}
});
现在,当我想像这样保存一些来自 facebook 的用户时:
var newUser = new User();
newUser.facebook.id = profile.id;
newUser.facebook.name = profile.name.givenName;
newUser.facebook.email = profile.emails[0].value;
newUser.save(function( err, user ) {
if( err ) console.log(err);
done(null, user);
});
我会收到一个错误,因为本地对象验证失败。那么我怎样才能让它们不相互依赖并且在插入值时仍然验证数据呢?
【问题讨论】:
标签: node.js mongodb validation mongoose