8. mongoose 修饰符

1. 预定义模式修饰符

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

  1. const UserSchema = mongoose.Schema({
  2. name: {
  3. type: String,
  4. trim: true // 去掉两端空格
  5. },
  6. age: Number,
  7. status: {
  8. type: Number,
  9. default: 1
  10. }
  11. });

内置的预定义模式修饰符有:

  • lowercase: 转为小写
  • uppercase: 转为大写
  • trim: 去掉两端空格

2. Setters 修饰符

setters修饰符可以在增加数据的时候对数据进行格式化,Getters可以在获取的时候格式化。推荐使用Setters。

  1. // 保证存到数据库的url是带有http协议的
  2. const NewsSchema = mongoose.Schema({
  3. title: 'string',
  4. author: String,
  5. pic: String,
  6. redirect: {
  7. type: String,
  8. set(url) {
  9. if (!url) return url;
  10. if (url.indexOf('http://') != 0 && url.indexOf('https://') != 0) {
  11. url = 'http://' + url;
  12. }
  13. return url;
  14. }
  15. },
  16. content: String,
  17. status: { type: Number, default: 1 }
  18. });
  1. // 获取时添加http协议
  2. const NewsSchema = mongoose.Schema({
  3. title: 'string',
  4. author: String,
  5. pic: String,
  6. redirect: {
  7. type: String,
  8. get(url) {
  9. if (!url) return url;
  10. if (url.indexOf('http://') != 0 && url.indexOf('https://') != 0) {
  11. url = 'http://' + url;
  12. }
  13. return url;
  14. }
  15. },
  16. content: String,
  17. status: { type: Number, default: 1 }
  18. });

可以同时使用Getters和Setters