Mongoose验证
在创建集合规则时,可以设置当前字段的验证规则,验证失败就则输入插入失败。
常见的验证规则:
- required: true 必传字段 - minlength:3 字符串最小长度 - maxlength: 20 字符串最大长度 - min: 2 数值最小为2 - max: 100 数值最大为100 - enum: ['html', 'css', 'javascript', 'node.js'] - trim: true 去除字符串两边的空格 - validate: 自定义验证器 - default: 默认值
// 引入mongoose第三方模块 用来操作数据库 const mongoose = require('mongoose'); // 数据库连接 mongoose.connect('mongodb://localhost/playground', { useNewUrlParser: true}) // 连接成功 .then(() => console.log('数据库连接成功')) // 连接失败 .catch(err => console.log(err, '数据库连接失败')); const postSchema = new mongoose.Schema({ title: { type: String, // 必选字段 required: [true, '请传入文章标题'], // 字符串的最小长度 minlength: [2, '文章长度不能小于2'], // 字符串的最大长度 maxlength: [5, '文章长度最大不能超过5'], // 去除字符串两边的空格 trim: true }, age: { type: Number, // 数字的最小范围 min: 18, // 数字的最大范围 max: 100 },
//发布日期 publishDate: { type: Date, // 默认值 default: Date.now },
//种类 category: { type: String, // 枚举 列举出当前字段可以拥有的值 enum: { values: ['html', 'css', 'javascript', 'node.js'], message: '分类名称要在一定的范围内才可以' } },
//作者 author: { type: String, validate: { validator: v => { // 返回布尔值 // true 验证成功 // false 验证失败 // v 要验证的值 return v && v.length > 4 }, // 自定义错误信息 message: '传入的值不符合验证规则' } } }); const Post = mongoose.model('Post', postSchema); Post.create({title:'aa', age: 60, category: 'java', author: 'bd'}) .then(result => console.log(result)) .catch(error => { // 获取错误信息对象 const err = error.errors; // 循环错误信息对象 for (var attr in err) { // 将错误信息打印到控制台中 console.log(err[attr]['message']); } })
标签:err,验证,true,MongoDB,mongoose,字符串,type From: https://www.cnblogs.com/wangxianwen/p/16712095.html