猫鼬ODM,在保存之前更改变量



我想为我的用户文档创建一个带有猫鼬的模型层,它确实:

  1. 验证(唯一,长度)
  2. 规范化(用户名和电子邮件转换为小写以检查唯一性)
  3. 制盐
  4. 密码哈希
  5. (伐木)
所有这些

操作都需要在保存到数据库之前执行。幸运的是,猫鼬支持验证、插件和中间件。

不好的是,我找不到任何关于这个主题的好材料。mongoosejs.com 的官方文档太短了...

有没有人有关于 Mongoose 预操作的示例(或者一个完整的插件,如果存在的话)?

问候

Schema.pre('save', callback)函数中,this保存的文档,以及在调用之前对其进行的修改next()更改保存的内容。

另一种选择是使用 Getters。以下是网站上的一个示例:

function toLower (v) {
  return v.toLowerCase();
}
var UserSchema = new Schema({
  email: { type: String, set: toLower } 
});

https://mongoosejs.com/docs/tutorials/getters-setters.html

var db = require('mongoose');
var schema = new db.Schema({
  foo:     { type: String }
});
schema.pre('save', function(next) {
  this.foo = 'bar';
  next();
});
db.model('Thing', schema);

相关内容

  • 没有找到相关文章

最新更新