在创建集合时,可以设置当前字段的验证规则,验证失败就插入失败。
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 }
版权声明:《 node.js - mongoose字段验证 》为Jack.甄原创文章,转载请注明出处!
最后编辑:2021-8-17 11:08:10