node.js - mongoose字段验证

在创建集合时,可以设置当前字段的验证规则,验证失败就插入失败。

  • type:传入的数据类型

  • required:必选字段

    • 当值为 true 时,说明该字段是一个必填字段。

    • 当值为 [ true, ‘该字段是必填项’ ] 时第一个值为true:开启必填。

    • 第二个值:如果该字段没传内容,那么就将这个字符当成错误信息返回。

required: [true, '该字段为必选项']
required: true

minlength:字符串的最小长度,注意:针对字符串

minlength: [2, '字符串最小长度为2'] //定义长度 和 自定义错误信息
minlength: 2 //只定义长度

maxlength:字符串的最大长度,注意:针对字符串

maxlength: [5, '字符串最小长度为2'] //定义长度 和 自定义错误信息
maxlength: 5 //只定义长度

min:数字的最小数,注意:针对数字

min: [0, '最小数应为0']
min: 0

max:数字的最大数,注意:针对数字

max: [100, '最大数应为100']
max: 100

trim:去除字符串两边的空格

trim: true

enum:枚举(是否是数组里面的值,如果是就成功,不是就失败)

enum:[0,1] //只能是0或者1

default:默认值


validata:自定义验证器

  • 这个是一个属性,它的值是一个对象。

    • 对象中有一个validator属性,它的值是一个函数。

      • 函数有一个参数,是v,这个v就是给字段传过来的值。

        • 这个函数返回一个boolean类型的值。

          • 为true就验证成功,为false就验证失败。
    • 在这个对象中,还有一个 message 属性,如果验证失败,message的值就是错误信息。

age: {
    type: Number, //设置类型
    //自定义验证器
    validata: {
        validator: function(v){ //这个v参数可以拿到age字段的值
            return v>=0 && v<=100; //条件
        },
        message: "传入的年龄不符合规范!";
    }
}

unique:唯一索引

  • 需要将值设置为true才会生效。
    • 在往数据库插入数据时,它会传入的这个数据在数据库中是否已经存在,如果存在就不会插入,并且会报一个错误。
age: {
    unique:true
}

发表评论 / Comment

用心评论~