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