我有这个架构:
var userSchema = new mongoose.Schema({
name: {type: String,required: true,lowercase: true, trim: true},
email: {type: String, required : true, validate: validateEmail },
createdOn: { type: Date, default: Date.now },
lastLogin: { type: Date, default: Date.now }
});
Run Code Online (Sandbox Code Playgroud)
这是我的验证"规则"
var isNotTooShort = function(string) {
return string && string.length >= 5;
};
var onlyLettersAllow = function(string) {
var myRegxp = /^[a-zA-Z]+$/i;
return myRegxp.test(string);
};
Run Code Online (Sandbox Code Playgroud)
为了验证我的名字字段,我尝试了这个:
userSchema.path('name').validate(isNotTooShort, 'Is too short');
userSchema.path('name').validate(onlyLettersAllow, 'Only Letters');
Run Code Online (Sandbox Code Playgroud)
它的工作原理.我可以在Schema中的字段上添加多个验证吗?就像是:
validate:[onlyLettersAllow,isNotTooShort]
Run Code Online (Sandbox Code Playgroud)
Chr*_*n P 32
您可以添加多个验证,如下所示:
var manyValidators = [
{ validator: isNotTooShort, msg: 'Is too short' },
{ validator: onlyLettersAllow, msg: 'Only Letters' }
];
var userSchema = new Schema({
name: { type: String, validate: manyValidators },
email: {type: String, required : true, validate: validateEmail },
createdOn: { type: Date, default: Date.now },
lastLogin: { type: Date, default: Date.now }
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3191 次 |
| 最近记录: |