Mongoose ODM,在保存之前更改variables
我想为我的用户文档创build一个带有Mongoose的模型层,它会:
- validation(唯一,长度)
- 规范化(用户名和电子邮件被转换成小写字母来检查唯一性)
- 盐生成
- 密码散列
- (logging)
所有这些操作都需要在执行db之前执行。 幸运的是,mongoose支持validation,插件和中间件。
坏事是我找不到有关这个问题的好材料。 mongoosejs.com上的官方文档太短
有没有人有关于与Mongoose(或一个完整的插件,如果存在的话)的预先操作的例子?
问候
在Schema.pre('save', callback)
函数中, this
是保存的文档,在调用next()
之前对其进行的修改会改变保存的内容。
另一个select是使用Getters。 以下是网站的一个例子:
function toLower (v) { return v.toLowerCase(); } var UserSchema = new Schema({ email: { type: String, set: toLower } });
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);