Nodejs operation mongodb fifth (data verification)

1. Introduction to data verification

mysqlCommon data verification at the database level, non-empty fields

Second, mongoosethe built-in data verification

  • 1. requiredIndicates that this data must be passed in
  • 2. maxFor Numbertype data, the maximum allowable value
  • 3. minFor Numbertype data, the minimum allowed value
  • 4. enumEnumeration type, the data must meet one of the enumeration values
  • 5. Regular rules that matchmust be met to increase datamatch
  • 6. maxlengthMaximum length
  • 7. minlengthMinimum length

Three, schemause data verification in

  • 1. Definitionschema

    const mongoose = require('./db');
    
    const userSchema = mongoose.Schema({
          
          
        name: {
          
          
            type: String,
            require: [true, '此项为必填内容'], // 需要自己去写获取其中的错误
            minlength: [3, '名字最小长度为3'],
            maxlength: [10, '名字最长为10'],
        },
        age: {
          
          
            type: Number,
            max: 150,
            min: 0,
        },
        status: {
          
          
            type: String,
            enum: ['0', '1', '2']
        },
        phone: {
          
          
            type: Number,
            match: /^1[3456789]\d{9}$/
        }
    })
    
    module.exports = mongoose.model('User', userSchema, 'user');
    
  • 2. Data verification when adding data

    const UserModel = require('./model/user');
    
    const user = new UserModel({
          
          
        name: '李四',
        age: 20,
        status: 3,
        phone: 181706066
    });
    
    user.save((err) => {
          
          
        if (err) {
          
          
           console.log('-------遍历全部的错误开始---------')
           Object.keys(err.errors).forEach(item => {
          
          
               console.log(err.errors[item].message);
           })
           console.log('-------遍历全部的错误结束---------')
        } else {
          
          
            console.log('增加数据成功');
        }
    });
    

Four, custom validator

  • 1. schemaDefined in

    const mongoose = require('./db');
    
    const userSchema = mongoose.Schema({
          
          
        address: {
          
          
            type: String,
            require: true,
            // 方式一:简单定义
            // 自定义的验证器,如果通过验证返回 true,没有通过则返回 false
            // validate: function (desc) {
          
          
            //     return desc.length >= 10;
            // },
            // 方式二:需要定义错误提示的方式
            validate: {
          
          
                validator: function(desc) {
          
          
                    return desc.length >= 10;
                },
                message: '长度必须大于10',
            }
        }
    })
    
    module.exports = mongoose.model('User', userSchema, 'user');
    
  • 2. The checksum is the same as above

Guess you like

Origin blog.csdn.net/kuangshp128/article/details/103855792