Mongoose为了保证数据库数据的一致性,提供了对数据校验的功能,常用的校验有以下这些:
1. required
必须传入,用于任意类型
2. max
最大值,用于 Number 类型数据
3. min
最小值, 用于 Number 类型数据
4. enum
枚举类型,要求数据必须满足枚举值 enum: ['0', '1', '2'],用于 String 类型
5. match
匹配正则,要求增加的数据必须匹配正则表达式,用于 String 类型
6. maxlength
最大长度,输入字符的长度不能超过该长度,用于 String 类型
7. minlength
最小长度,输入的字符的长度最小长度,用于 String 类型
8. validate
自定义校验,用特定的方法来约束数据,用于任意类型
以下是使用实例
// 引入自定义的连接数据库的文件
var mongoose = require('./db.js');
var UserSchema = mongoose.Schema({
name: {
type: String,
trim: true,
// 必须传入
required: true
},
sn: {
type: String,
index: true,
// 最大长度
maxlength: 20,
// 最小长度
minlength: 10,
// 正则匹配
match: /^sn(.*)/,
// 自定义校验
validate: function (sn) {
return sn.length >= 10;
}
},
phone:{
type:Number,
// 正则匹配
match: /^\d{11}$/
},
age: {
type: Number,
// 最小值
min: 0,
// 最大值
max: 150
},
status: {
type: String,
default: 'success',
// 值的枚举范围
enum: ['success', 'error']
}
})
module.exports = mongoose.model('User', UserSchema, 'user');
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有