2014-03-29 25 views
4

我有一个插件在猫鼬和对每个方案我做以下如何重写mongoose插件的功能?

var user = new Schema({}); 
user.plugin(myplugin); 
user.statics.createCustomDoc = function() { 
..... 
} 

问题是createCustomDoc方法也为myplugin定义。 现在我想用定义为user.statics.createCustomDoc的方法覆盖myplugin的createCustomDoc

当前调用的方法来自插件,而不是我在user.statics.createCustomDoc中编写的方法。

我该怎么做。

当然,我不想更改函数的名称,也不想更换插件,也不想更改插件的代码。

+0

我有同样的问题,我需要一些数据保存为原始和其他集合稍作修改,我想重写猫鼬CRUD来做到这一点。 –

+0

我刚刚用猫鼬4.1.7测试了它,它现在按预期工作。 –

回答

0

我面临着类似的问题,同时超控猫鼬查询功能,并试图这样的事情,它工作

//store reference to original myPlugin createCustomDoc function 
var createCustomDoc = user.statics.createCustomDoc; 

//override that function 
user.statics.createCustomDoc = function (options, callback) { 
    var self = this; 
    //after your code, call original function 
    createCustomDoc.call(self, options, callback); 

}