天天看點

Mongoose中的修飾符

Mongoose提供了修飾符功能用于對存取的資料進行一些加工,常用的修飾符有以幾下幾種:

1. 預定義修飾符

1. lowercase 轉小寫

2. uppercase 轉大寫

3. trim 去掉前後空格

2. 自定義修飾符

1. set 設定資料,會将修飾過的資料處理入庫。

2. get 擷取執行個體資料時修飾,不會影響入庫的資料,使用較少。

3. 預定義修飾符與自定義修飾符 set 執行個體(常用)

連接配接資料庫,檔案名為db.js

var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test', { useNewUrlParser: true }, function (err) {
    if (err) {
        console.log(err);
        return;
    }
    console.log('資料庫連接配接成功')
});
module.exports = mongoose;           

複制

定義schema、生成模型,檔案名為focus.js

// 引入自定義子產品化的資料庫連接配接
var mongoose = require('./db.js');
// 定義schema
var FocusSchema = mongoose.Schema({
    title: {
        type: String,
        // 對title字段去掉前後的空格
        trim: true
    },
    pic: String,
    redirect: {
        type: String,
        // 自定義設定資料,parmas為目前的值
        // 為域名添加協定
        set(parmas) {
            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');           

複制

在需要進行資料操作的頁面引入focus.js ,進行資料操作

var FocusModel = require('./model/focus.js');
var focus = new FocusModel({
    title: " 國際新聞 ",
    pic: 'http://www.xxx.com/x.png',
    redirect: 'www.baidu.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);
        // "國際新聞"将會去掉前後的空格
        // www.baidu.com 将會變成 http://www.baidu.com 
    })
});           

複制

4. 自定義修飾符 get 執行個體(不常用)

連接配接資料庫,檔案名為db.js

var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test', { useNewUrlParser: true }, function (err) {
    if (err) {
        console.log(err);
        return;
    }
    console.log('資料庫連接配接成功')
});
module.exports = mongoose;           

複制

定義schema、生成模型,檔案名為 user.js

var mongoose=require('./db.js');
var UserSchema=mongoose.Schema({
    name:{
        type:String,
        // 将擷取的執行個體資料添加辨別符
        get(params){   
            return "姓名:" + params
        }   
    },
    age:{
        type:Number,
        // 将擷取的執行個體資料添加辨別符
        get(params){
            return "年齡:"+ params;
        }
    },   
    status:{
        type:Number,
        default:1
    }
})
module.exports=mongoose.model('User',UserSchema,'user');           

複制

在需要進行資料操作的頁面引入user.js ,進行資料操作,注意隻能作用于生成的執行個體

var UserModel = require('./model/user.js');

var user = new UserModel({
    name: '張三',
    age: 20
});

console.log(user.name, user.age);
// 姓名:張三,年齡:20           

複制