Mongoose 预定义模式修饰符 Getters 与 Setters 自定义修饰符

一、mongoose 预定义模式修饰符

lowercaseuppercase trim

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

db.js

 

//连接数据库

var mongoose=require('mongoose');

//useNewUrlParser这个属性会在url里识别验证用户所需的db,未升级前是不需要指定的,升级到一定要指定。

mongoose.connect('mongodb://127.0.0.1:27017/eggcms',{ useNewUrlParser: true },function(err){
        if(err){

            console.log(err);
            return;
        }
        console.log('数据库连接成功')
});

module.exports=mongoose;

 

focus.js

var mongoose=require('./db.js');


var FocusSchema=mongoose.Schema({
    title:{
        type:String,
        trim:true    //定义 mongoose模式修饰符 去掉空格
    },   
    pic:String,    
    redirect:{
        type:String,
        set(parmas){   //增加数据的时候对redirect字段进行处理
            // parmas可以获取redirect的值 、    返回的数据就是redirect在数据库实际保存的值
            /*
             www.baidu.com              http://www.baidu.com
             http://www.baidu.com       http://www.baidu.com
            */
            if(!parmas){
                return ''
            }else{
               if(parmas.indexOf('http://')!=0 && parmas.indexOf('https://')!=0){

                    return 'http://'+parmas;
               }
                return parmas

            } 

        }
    },
    status:{
        type:Number,
        default:1

    }
})

module.exports=mongoose.model('Focus',FocusSchema,'focus');

操作:

var FocusModel=require('./model/focus.js');



var focus =new FocusModel({    
    title:"    我是一个国际新闻666666   ",    
    pic:'http://www.xxx.com/x.png',    
    redirect:'www.bbbbb.com'
  
})

focus.save(function(err){

    if(err){

        console.log(err);
        return;
    }
    FocusModel.find({},function(err,docs){

        if(err){

            console.log(err);
            return;
        }

        console.log(docs);
    })

});

 

 

posted on 2020-02-14 18:15  LoaderMan  阅读(394)  评论(0编辑  收藏  举报

导航