【发布时间】:2012-07-13 00:20:40
【问题描述】:
我正在尝试向名为“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.");
}
};
【问题讨论】:
标签: javascript node.js prototype mongoose