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
        }
    })
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章