mongoose 的使用【02】:【Express+Mongoose】Mongoose 預定義模式修飾符 Getters與 Setters修飾符
阿新 • • 發佈:2021-01-12
./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 } ] */