「paginate」というQueryオブジェクトにチェーンメソッドを追加しようとしています。query.jsに追加すれば、問題なく使用できます。ただし、コアファイルの1つを変更することはお勧めできません。
いくつかの変更を加えて見つけたこのコードを使用しており、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.");
}
};