我想用 Mongoose 为我的用户文档创建一个模型层,它可以:
- 验证(唯一,长度)
- 规范化(用户名和电子邮件被转换为小写以检查唯一性)
- 盐生成
- 密码散列
- (记录)
在持久化到数据库之前,需要执行所有这些操作。幸运的是 mongoose 支持验证、插件和中间件。
坏事是我找不到任何关于这个主题的好材料。mongoosejs.com 上的官方文档太短了……
有没有人有关于 Mongoose 的预操作的例子(或者一个完整的插件,如果它存在的话)?
问候
在您的Schema.pre('save', callback)
函数中,this
是否正在保存文档,以及在调用next()
更改保存的内容之前对其进行的修改。
另一种选择是使用 Getter。这是网站上的一个例子:
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);