我正在尝试向名为“paginate”的 Query 对象添加一个链方法。如果我将它添加到 query.js,我可以毫无问题地使用它。但是,修改其中一个核心文件并不是一个好主意。
我正在使用经过一些修改找到的这段代码,并希望它成为 Query 原型的一部分,但我没有成功让它在 Query.js 中运行。
我怎样才能做到这一点?是否有任何关于如何通过模块扩展这些核心文件的文档?我还没有找到任何适合我的东西。
mongoose.Query.prototype.paginate = function(page, limit, cb) {
var model, query, skipFrom;
if (page == null) {
page = 1;
}
if (limit == null) {
limit = 10;
}
query = this;
model = this.model;
skipFrom = (page * limit) - limit;
query = query.skip(skipFrom).limit(limit);
if (cb) {
return query.run(function(err, docs) {
if (err) {
return cb(err, null, null);
} else {
return model.count(query._conditions, function(err, total) {
return cb(null, total, docs);
});
}
});
} else {
throw new Error("pagination needs a callback as the third argument.");
}
};