一、mongoose预定义修饰符

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

  1. var mongoose = require('mongoose')
  2. var NewsSchema = mongoose.Schema({
  3. title: {
  4. type: String,
  5. trim: true // 定义mongoose模式修饰符,去掉左右空格
  6. },
  7. author: String,
  8. pic: String,
  9. content: String,
  10. status: {
  11. type: Number,
  12. default: 1
  13. }
  14. })
  15. module.exports = mongoose.model('News', NewsSchema, 'news')

二、Getters与Setters自定义修饰符

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

  1. /* set修饰符 */
  2. var mongoose = require('mongoose')
  3. var FocusSchema = mongoose.Schema({
  4. title: {
  5. type: String,
  6. trim: true
  7. },
  8. pic: String,
  9. redirect: {
  10. type: String,
  11. set(params) { // 增加数据的时候对redirect字段进行处理
  12. // params可以获取到redirect的值,返回的数据就是redirect在数据库保存的值
  13. if (!params) return ''
  14. if (params.indexOf('http://') != 0 && params.indexOf('https://') != 0) {
  15. return 'http://' + params
  16. }
  17. return params
  18. }
  19. },
  20. status: {
  21. type: Number,
  22. default: 1
  23. }
  24. })
  25. module.exports = mongoose.model('Focus', FocusSchema, 'focus')