Мангуст ODM, изменение переменных перед сохранением
Я хочу создать слой модели с Мангустой для моих пользовательских документов, который делает:
- проверка (уникальные, длина)
- canonicalisation (имя пользователя и адрес электронной почты преобразуются в нижний регистр, чтобы проверить уникальность)
- соль
- хэширование паролей
- (logging)
все эти действия должны быть выполнены перед сохранением в БД. К счастью, mongoose поддерживает проверку, плагины и промежуточное программное обеспечение.
плохо то, что я не могу найти хорошего материала по этому вопросу. Официальные документы mongoosejs.com слишком короткие...
есть ли у кого-нибудь пример о предварительных действиях с Мангустом (или полный плагин, который делает все, если он существует)?
в отношении
3 ответов
в своем , this
сохраняется ли документ и изменения, внесенные в него перед вызовом next()
изменить то, что спас.
другой вариант-использовать геттеры. Вот пример с сайта:
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);