mongoose数据校验

mongoose数据校验

九月 14, 2018

一、校验参数

1、required: 表示这个数据必须传入
2、max: 用于 Number 类型数据,最大值
3、min: 用于 Number 类型数据,最小值
4、enum:枚举类型,要求数据必须满足枚举值 enum: [‘0’, ‘1’, ‘2’],用于 string
5、match:增加的数据必须符合 match 正则表达式,用于 string
6、maxlength:最大长度,用于 string
7、minlength:最小长度
例如在定义 Schema 时加入校验参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var UserSchema=mongoose.Schema({

name:{

type:String, //指定类型
trim:true, //去空格
required:true //name必须传入
},
sn:{

type:String,
index:true, //索引.
match:/^sn(.*)/i, //必须以sn为开头,忽略大小写
minlength:10
},
age:{

type:Number,
min:0, //用在number类型上面
max:150
},
status:{

type:String,
default:'success', //默认值
enum:['success','error'] //status的值必须在对应的数组里面,注意枚举是用于String
}
})

二、自定义验证器

与自定义修饰符 set 相似,我们可以使用 validate 来自定义验证器。如果通过验证就返回 true,没有通过则返回 false。在上个例子中 sn 可以改成如下自定义验证器:

1
2
3
4
5
6
7
8
9
sn:{

type:String,
index:true, //索引.
match:/^sn(.*)/i, //必须以sn为开头,忽略大小写
validate: function(sn) {
return sn.length >= 10; //sn长度大于等于10
}
}