首页 > 其他 > 详细

mongoose 的使用【02】:【Express+Mongoose】Mongoose 预定义模式修饰符 Getters与 Setters修饰符

时间:2021-01-12 16:34:30      阅读:25      评论:0      收藏:0      [点我收藏+]

 

./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 }
    ]

*/

 

mongoose 的使用【02】:【Express+Mongoose】Mongoose 预定义模式修饰符 Getters与 Setters修饰符

原文:https://www.cnblogs.com/janty/p/14266299.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!