Мангуст ODM, изменение переменных перед сохранением

Я хочу создать слой модели с Мангустой для моих пользовательских документов, который делает:

  1. проверка (уникальные, длина)
  2. canonicalisation (имя пользователя и адрес электронной почты преобразуются в нижний регистр, чтобы проверить уникальность)
  3. соль
  4. хэширование паролей
  5. (logging)

все эти действия должны быть выполнены перед сохранением в БД. К счастью, mongoose поддерживает проверку, плагины и промежуточное программное обеспечение.

плохо то, что я не могу найти хорошего материала по этому вопросу. Официальные документы mongoosejs.com слишком короткие...

есть ли у кого-нибудь пример о предварительных действиях с Мангустом (или полный плагин, который делает все, если он существует)?

в отношении

3 ответов


в своем , this сохраняется ли документ и изменения, внесенные в него перед вызовом next() изменить то, что спас.


другой вариант-использовать геттеры. Вот пример с сайта:

function toLower (v) {
  return v.toLowerCase();
}

var UserSchema = new Schema({
  email: { type: String, set: toLower } 
});

http://mongoosejs.com/docs/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);