Ответ 1
В вашей функции Schema.pre('save', callback)
this
- это сохраненный документ и внесенные в него изменения перед вызовом next()
изменить то, что было сохранено.
Я хочу создать модельный слой с Mongoose для моих пользовательских документов, который:
Все эти действия необходимо выполнить перед тем, как продолжить работу с db. К счастью, mongoose поддерживает проверку, плагины и промежуточное ПО.
Плохо то, что я не могу найти хороший материал по этому вопросу. Официальные документы на 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 }
});
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);