2014-12-13 23 views
0

在我们的应用程序中,我们有一个大型文档,它是我们REST API大部分数据的来源。在nodejs中扩展MongoDB的“保存”方法

为了正确地使REST API的客户端缓存失效,我想跟踪对文档进行的任何修改。我们想出的最好办法是扩展文档的mongo save命令以发送通知(然后照常保存)。

问题是,在实际中如何实际做到这一点?有没有直接的方法来扩展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(); 
});