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

135 阅读1分钟

一、mongoose预定义修饰符

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

var mongoose = require('mongoose')

var NewsSchema = mongoose.Schema({
	title: {
    	type: String,
        trim: true  // 定义mongoose模式修饰符,去掉左右空格
    },
    author: String,
    pic: String,
    content: String,
    status: {
    	type: Number,
        default: 1
    }
})

module.exports = mongoose.model('News', NewsSchema, 'news')

二、Getters与Setters自定义修饰符

除了mongoose内置的修饰符以外,我们还可以通过set(建议使用)修饰符在增加数据的时候对数据进行格式化。也可以通过get(不建议使用)在实例获取数据的时候对数据进行格式化。

/* set修饰符 */
var mongoose = require('mongoose')

var FocusSchema = mongoose.Schema({
	title: {
    	type: String,
        trim: true
    },
    pic: String,
    redirect: {
    	type: String,
        set(params) {  // 增加数据的时候对redirect字段进行处理
        	// params可以获取到redirect的值,返回的数据就是redirect在数据库保存的值
        	if (!params) return ''
            if (params.indexOf('http://') != 0 && params.indexOf('https://') != 0) {
            	return 'http://' + params
            }
            return params
        }
    },
    status: {
    	type: Number,
        default: 1
    }
})

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