zoukankan      html  css  js  c++  java
  • nodejs中mongoose库的使用

    mongoose库

    Schema

    Schema定义了一种聚合的规则

    var userSchema = new Schema({
        name:{
            type:String,
            unique:true,
            required:true
        },
        age:{
            type:Number,
            min:1,
            max:100
        },
        brothDay:{
            type:String,
            match:/[1-31]day$/i
        },
        brothMonth:{
            type:String.
            enum:['1月','2月','...','11月','12月']
        }
    })
    

    通过schema可以初步的校验数据规则,当校验规则不正确的时候,会返回一个错误对象,格式如下:

    { 
        message: 'Validation failed',
        name: 'ValidationError',
        errors:{ 
            email:{
                message: 'Validator "required" failed for path email',
                name: 'ValidatorError',
                path: 'email',
                type: 'required' 
            },
            name:{ 
                message: 'Validator "required" failed for path name',
                name: 'ValidatorError',
                path: 'name',
                type: 'required' 
            } 
        } 
    }
    

    自定义schema验证规则

    var lengthVal = function(val) {
        if (val && val.length >= 5){
            return true;
        }
        return false;
    };
    //usage: 当不满足验证规则时返回的msg为错误描述
    name: {type: String, required: true, validate: {validator:lengthVal,msg:'error desc'}}
    
    //添加多个验证规则
    var validators = [{validator:validator1,msg:'error desc1'},{validator:validator2,msg:'error desc2'}]
    name: {type: String, required: true, validate:validators}
    
    //离散的添加若干个验证规则
    userSchema.path('name').validate(lengthVal, 'Too short');
    userSchema.path('name').validate(/^[a-z]+$/i, 'Letters only');
    
  • 相关阅读:
    Linux权限及归属管理
    Linux账户管理
    随笔记录 磁盘坏道故障 2019.8.7
    随笔记录 MBR扇区故障系统备份与还原 2019.8.7
    随笔记录 grub引导故障修复 2019.8.7
    随笔记录 综合训练 2019.8.5
    随笔记录 磁盘配额2019.8.2
    随笔记录 2019.7.31
    随笔记录 2019.7.31
    随笔记录 linux命令 2019.7.29
  • 原文地址:https://www.cnblogs.com/lovecc/p/6022636.html
Copyright © 2011-2022 走看看