我有一個基本的貓鼬架構:貓鼬驗證 - 執行多個自定義驗證
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);
});
};
我的問題是:如果我竟被d喜歡使用像validator這樣的模塊來驗證輸入是否爲電子郵件,我將如何去做這件事?我知道我可以要求該模塊,並執行validator.isEmail(email)
之類的操作,並得到一個布爾值作爲回報,但是如何將此與我的當前設置進行整合?