./model/user.js
/* mongoose 的自定义修饰符: Getters 与 setters 除了mongoose内置修饰符以外,还可以通过 set (建议使用) 修饰符,对增加数据的时,对数据进行格式化; 也可以通过 get(不建议使用)在 实例获取数据 的时候 对 实例数据 进行格式化。 */ var mongoose = require("./db.js"); var userSchema = mongoose.Schema({ sn: { type: Number, unique: true, //唯一索引 // index: true, //普通索引 }, name: { type: String, upperCase: true, //全部大写 // lowerCase: true,//全部小写 get(params) { return "get加在前面的:" + params; }, }, title: { type: String, maxlength: 200, //最大长度 minlength: 1, //最小长度 required: true, //必填字段 trim: true, //去除左右空格 }, age: { type: Number, max: 150, //最大值 min: 0, //最小值 }, redirect: { type: String, // 自定义修饰符: set方法是在增加数据的时候对redirect字段进行处理 set(parmas) { //parmas参数可以获取redirect的值 、 返回的数据就是redirect在数据库实际保存的值 // if (!parmas) return parmas; if (!parmas) { return ""; } else { if (parmas.indexOf("http://") != 0 && parmas.indexOf("https://") != 0) { return "http://" + parmas; } return parmas; } }, }, status: { try: Number, default: 0, //默认填充 }, }); module.exports = mongoose.model("User", userSchema, "users");
user.js
var UserModel = require("./model/user.js"); // ./model/user.js 中 userSchema 的 name 里的 get 对实例进行操作 var user = new UserModel({ name: "赵六", age: 20 }); console.log(user.age); //20 console.log(user.name); // get加在前面的:赵六 UserModel.find({}, function (err, data) { if (err) return console.log(err); console.log(data); }); /* PS D:\nodeDemo\mongoose02> node .\user.js 20 get加在前面的:赵六--【按顺序执行完了实例的代码才执行数据库的连接】 连接数据库成功 [ { _id: 5ffc15140e5352204c72840e, name: '张三', age: 20, __v: 0 }, { _id: 5ffc1adc0c7993265064ef22, name: '李四', age: 20, __v: 0 } ] */