npm 验证器在 mongoose 验证中返回 false,但仍然提交查询

问题描述 投票:0回答:1

我正在练习猫鼬验证。我正在尝试获取猫鼬模式中的名称字段来验证字母和空格,但没有数字。使用 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。

node.js validation npm mongoose
1个回答
0
投票

您不会返回验证结果。
请参阅自定义验证器

return validator.isAlpha(this.name, 'en-US', { ignore: ' ' });

© www.soinside.com 2019 - 2024. All rights reserved.