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
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");
睡覺。