egg学习笔记第二十五天:mongoose预约义模式修饰符 Getters与Setters自定义修饰符

1、mongoose预约义模式修饰符。javascript

lowercase、uppercase、trimjava

mongoose提供的预约义模式修饰符,能够对咱们增长的数据进行一些格式化。数据库

①、db文件夹下新建news.js,链接数据库,导出newsModel。mongoose

var mongoose = require("./db.js");
// 定义数据表(集合的)映射,注意:字段名称必须和数据库保持一致
var NewsSchema = mongoose.Schema({
  title: String,
  author: String,
  pic: String,
  content: String,
  status: {
    type: Number,
    dafault: 1
  }
});

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

②新建news.js,键入以下代码函数

var NewsModel = require("./model/news.js");
var news = new NewsModel({
  title: "    我是一个国际新闻    ",
  author: "张三",
  pic: "http://xxx.com/x.png",
  cintent: "我是一个内容11"
});

news.save(function(err) {
  if (err) {
    console.log(err);
    return;
  }
  NewsModel.find({}, function(err, docs) {
    if (err) {
      console.log(err);
      return;
    }
    console.log(docs);
  });
});

可知title字段有先后空白格。ui

定义字段改为一下写法,用trim。url

在执行news.js,入库操做的数据title已经处理掉先后空白格。spa

 

2、Mongoose

Getters 与 Setters 自定义修饰符code

除了 mongoose 内置的修饰符之外,咱们还能够经过set(建议使用)修饰符在增长数据的 时候对数据进行格式化。也能够经过 get(不建议使用)在实例获取数据的时候对数据进行格式化。blog

get 和 set函数当数据存储或者读取的时候进行格式化,url没有http://加上http://


 

var mongoose = require("./db.js");
// 定义数据表(集合的)映射,注意:字段名称必须和数据库保持一致
var NewsSchema = mongoose.Schema({
  // title: String,
  title: {
    type: String,
    trim: true
  },
  url: {
    type: String,
    set(url) {
      if (!url) return url;
      if (url.indexOf("http://") != 0 && url.indexOf("https://") != 0) {
        url = "http://" + url;
      }
      return url;
    },
    get: function(url) {
      if (!url) return url;

      if (url.indexOf("http://") != 0 && url.indexOf("https://") != 0) {
        url = "http://" + url;
      }
      return url;
    }
  },
  author: String,
  pic: String,
  content: String,
  status: {
    type: Number,
    dafault: 1
  }
});

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

睡觉。

相关文章
相关标签/搜索