【发布时间】:2015-07-20 01:04:35
【问题描述】:
我有一个基本的猫鼬模式:
var userSchema = new Schema({
userName: {type: String, required: 'Please enter a username'},
email: {type: String, required: 'Please enter email'},
password: {type: String, required: 'Please create a password'},
created: {type: Date, default: Date.now}
});
我执行了一个自定义验证器,它调用一个小服务(在另一个文件中)来查找电子邮件地址是否已被使用:
userSchema.path('email').validate(function(value, next) {
userService.findUser(value, function(err, user) {
if (err) {
console.log(err);
return next(false);
}
next(!user);
});
}, 'Already exists');
这里是 findUser 方法:
exports.findUser = function(email, next) {
User.findOne({email: email.toLowerCase()}, function(err, user) {
next(err, user);
});
};
我的问题是:如果我想使用像 validator 这样的模块来验证输入是否是电子邮件,我将如何去做?我知道我可以要求该模块并执行validator.isEmail(email) 之类的操作并获得一个布尔值作为回报,但是如何将它与我当前的设置集成?
【问题讨论】:
标签: javascript node.js mongodb validation mongoose