首页 > 数据库 >MongoDB-mongoose验证

MongoDB-mongoose验证

时间:2022-09-20 18:47:53浏览次数:92  
标签:err 验证 true MongoDB mongoose 字符串 type

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

相关文章

  • MongoDB增删改查
    向数据库中导入数据mongoimport-d数据库名称-c集合名称--file要导入的文件mongoimport-dplayground-cusers--file./user.json 查询//查询用户集合中......
  • MongoDB集群的variety执行
    创建结果数据库   1.创建一个新的存储数据库用来保存分析结果     usekeyTest     db.createUser({       user:"root",   ......
  • MongoDB 用户与权限
    1、创建查询role:custom_role,对dbidap_zl下的collection:tab1、tab2只有查询权限1)使用trs用户登录数据库2)切换到db:idap_zl创建role,替换示例中的collection,如果......
  • MongoDB09-索引
    MongoDB的索引用于查询(find、findOne)和排序。如果倾向于在集合中大量使用排序,那么应该根据排序的需求添加索引。如果在一个没有索引的集合中对目标字段使用sort(),并且......
  • 验证码测试
    验证码功能的实现可以分为三个步骤:(1)UI点击获取验证码,同步显示验证码有效时间(2)后端获得指令后通过代理平台发送验证短信(3)用户收到短信,在UI上提交验证码,后台做逻辑判断......
  • 【视频】机器学习交叉验证CV原理及R语言主成分PCA回归分析犯罪率|数据共享
    全文链接:http://tecdat.cn/?p=24671原文出处:拓端数据部落公众号交叉验证是避免过度拟合和很好地理解预测模型性能的最有效技术之一。相关视频:机器学习交叉验证CV原理及R......
  • mongodb设置密码
    在官方文档中踩坑了,从别的地方查的。首先说明,mongodb的密码和其他,诸如mysql不同。mongodb的密码是基于数据库的,每个数据库都要设置自己的密码,同时设置用户是基于权限的。......
  • GitHub不再支持密码验证解决方案:SSH免密与Token登录配置
    今天提交代码,push到GitHub上,突然出现这个问题。remote:SupportforpasswordauthenticationwasremovedonAugust13,2021.Pleaseuseapersonalaccesstokenins......
  • 一文搞懂用户登录验证流程(附图)
    前言本文通过图示及代码的方式介绍用户登录流程及技术实现,内容包括用户登录,用户验证,如何获取操作用户的信息以及一些黑名单及匿名接口如何免验证相关的实现。结合网关......
  • 使用pymongo管理MongoDB
    基于pymongo的MongoDB系列操作,会不定时补充更新frompymongoimportMongoClientimportpymongoimportdatetime##连接本地MongoDBclient=MongoClient("mongodb:......