我正在练习猫鼬验证。我正在尝试获取猫鼬模式中的名称字段来验证字母和空格,但没有数字。使用 npm 验证器时,validator.isAlpha 函数 () 返回 false,但 mongoose 仍然在我的数据库中创建文档。我不确定到底发生了什么,因为我认为验证失败,则不应创建文档。有什么想法或建议吗?
{
name: {
type: String,
required: [true, 'A tour must have a name'],
unique: true,
trim: true,
maxlength: [40, 'A tour name must have less or equal than 40 characters'],
minlength: [10, 'A tour name must have more or equal then 10 characters'],
// validate: [validator.isAlpha, ' Tour name must only contain characters']
validate: {
validator: function (val) {
console.log(val);
console.log(validator.isAlpha(this.name, 'en-US', { ignore: ' ' }));
validator.isAlpha(this.name, 'en-US', { ignore: ' ' });
},
message: 'At tour must only contain letters'
}
}
}
console.log(val) 打印字符串(即“john doe 35”),console.log(validator ...) 打印 false。
您不会返回验证结果。
请参阅自定义验证器
return validator.isAlpha(this.name, 'en-US', { ignore: ' ' });