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");

睡覺。

相關文章
相關標籤/搜索