一、mongoose预定义修饰符

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

  1. var UserSchema = new mongoose.Schema({
  2. name:{
  3. type: String,
  4. //会对增加的字段,左右去空格
  5. trim:true
  6. },
  7. age:Number,
  8. status:{
  9. type: Number,
  10. default:1
  11. }
  12. })

二、Getters与Setters自定义修饰符

通过set(建议使用)修饰符在增加数据的时候对数据进行格式化。也可以通过get(不建议使用)在实例获取数据的时候对数据进行格式化。

  1. const mongoose = require('./db');
  2. const FocusSchema = new mongoose.Schema({
  3. title:{
  4. type: String,
  5. trim:true
  6. },
  7. pic:String,
  8. redirect:{
  9. type: String,
  10. set(params){
  11. //增加数据的时候对redirect字段进行处理
  12. if(!params.startsWith('http://')){
  13. return 'http://'+params
  14. }
  15. }
  16. }
  17. })
  18. module.exports = mongoose.model("Focus",FocusSchema,"focus")

set方法对redirect的值进行判断,如果不包含 http:// ,则加上 http://

  1. const FocusModel = require('./model/focus');
  2. var focus = new FocusModel({
  3. title:"美女人",
  4. pic:"www.baidu.com",
  5. redirect:"www.xxx.com"
  6. })
  7. focus.save()

将此数据在数据库保存为

  1. { "_id":"5cdd0ed1a08cfc3844035bcf",
  2. "status":1,
  3. "title":"美女人",
  4. "pic":"www.baidu.com",
  5. "redirect":"http://www.xxx.com"
  6. }