Eggjs笔记:Mongoose预定义模式修饰符Getters与Setters自定义修饰符

Mongoose 预定义模式修饰符

  • lowercase、uppercase 、trim

  • mongoose 提供的预定义模式修饰符,可以对我们增加的数据进行一些格式化

  • 在定义Schema时进行处理

    var UserSchema=mongoose.Schema({
        name:{
            type:String,
            trim:true
        },
        age:Number,
        status:{
            type:Number,
            default: 1
        }
    })
    

Mongoose Getters与Setters 自定义修饰符

  • 除了 mongoose 内置的修饰符以外,我们还可以通过 set(建议使用) 修饰符在增加数据的时候对数据进行格式化
  • 也可以通过 get(不建议使用)在实例获取数据的时候对数据进行
  • 示例:对url进行处理url的自定义修饰符 set操作, 主要看redirect这个属性的自定义修饰符
    var NewsSchema=mongoose.Schema({
        title:"string", 
        author:String, 
        pic:String, 
        // 这里是一个跳转地址url, 如果用户输入www.baidu.com(没有http/https协议的) 保存成 http://www.baidu.com
        redirect:{
            type:String,
            set(url) {
                if(!url) return url;
                if(url.indexOf('http://')!=0 && url.indexOf('https://')!=0){
                    url = 'http://' + url;
                }
                return url;
            }
        }, 
        content:String, 
        status:{
            type:Number, 
            default:1
        }
    })
    
  • 示例:对url进行处理url的自定义修饰符 set、get操作, 主要看redirect这个属性的自定义修饰符
    var NewsSchema=mongoose.Schema({
        title:"string", 
        author:String,
        pic:String,
        redirect:{
            type:String, 
            set(url){
                if(!url) return url;
                if(url.indexOf('http://')!=0 && url.indexOf('https://')!=0){
                url = 'http://' + url;
                }
                return url;
            }, 
            get: function(url){
                if(!url) return url;
                if(url.indexOf('http://')!=0 && url.indexOf('https://')!=0){
                url = 'http://' + url;
                }
                return url;
            }
        }, 
        content:String, 
        status:{
            type:Number, 
            default:1
        }
    })
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章