2014-12-13 3 views
0

В нашем приложении у нас есть большой документ, который является источником большинства наших данных для нашего REST api.Расширение метода сохранения MongoDB в nodejs

Для правильной аннулирования кеша на стороне клиента для REST api, я хочу отслеживать любые изменения, внесенные в документ. Самое лучшее, что мы придумали, - это продлить команду сохранения mongo для документа, чтобы отправить уведомление (а затем сохранить как обычно).

Вопрос в том, как на самом деле это делается на практике? Есть ли прямой способ продлить метод сохранения «mongo» или создать собственный метод (т. Е. «SaveAndNotify») для модели, которую мы используем вместо этого (чего я мог бы избежать, если бы мог)?

Итак, в принципе, я ищу, чтобы сделать это, но у меня проблема, не сбивающая родительскую функцию сохранения();

mySchema.methods.save = function() { 
    // notify some stuff 
    ... 
    //call mongo save function 
    return this.super.save(); 
}; 

ответ

0

обезьяна латание объект ядра Монго это плохая идея, однако, оказывается mogoose имеет middleware концепцию, которая будет обрабатывать это просто отлично:

var schema = new Schema(..); 
schema.pre('save', function (next) { 
    // do stuff 
    next(); 
});