在创建集合规则的时候呢,我们可以设置当前字段的验证规则,验证失败就输入插入失败
const userSchema = new mongoose.Schema({
name:String,
})
之前我们的规则是这样写的,现在为了设置验证规则,将规则放入对象中。
一,常见的验证规则
const userSchema = new mongoose.Schema({
name:{
type:String,
require:[true,'请输入名字'], //name 这个属性是必填属性,不可为空
minlength:[2,'字符串长度不能小于2'], //name的属性值最小长度为2
minlength:[7,'字符串度不能小于2'], //name的属性值最大长度为2
trim:true //会自动把子符串两边的空格清除掉
}
})
二,针对数值型的验证规则:min,max
age:{
type:Number,
min:20, //数值型最小是20
max:60, //数值型最大是60
default:40 //如果不传入数值,则显示默认值40
}
三,有时可以用数组枚举的方式限制传入的数据
category:{
type:String,
enum:['html','css','js','node']
}
category:{
type:String,
enum:{
value:['html','css','js','node'],
message:'分类名称要在一定的范围内'
}
},
四,可以自定义验证规则利用validate属性
author:{
type:String,
validate:{
validator: v=>{
//返回布尔值
//true验证成功
//false验证失败
//v 要验证的值
return v && v.length >4 //有传入值,且长度大于4才返回true
},
//自定义错误信息
message:'传入的值不符合检测规则'
}
}