[英]Limit and offset with Bookshelf.js
我正在使用下面的代码从表中获取所有结果:
Search.forge()
.fetchAll()
.then(function (collection) {
res.json({error: false, data: collection.toJSON()});
})
但是我将需要分页,我认为我可以通过限制和偏移来做到这一点,但到目前为止我还没有找到任何可以为我提供限制和偏移选项的内容。
这甚至可能还是我必须使用 Knex 构建我的查询?
Knex 查询构建器应该有帮助,首先你必须调用collection.query()
以便书架进入 knex 查询构建器
Models.forge()
.query(function(qb) {
//qb is knex query builder, use knex function here
qb.offset(0).limit(10);
})
.fetchAll().then(function(result) {
res.json(result.toJSON());
})
所以 knex 查询构建器功能 -> http://knexjs.org/#Builder现在免费提供
这就是如何在 Bookshelf 中使用分页。 考虑到您有一个 Post 模型,例如:
Post.query(function (qb) {
qb.orderBy('id', 'DESC');
qb.limit(20);
}).fetchAll()
.then(function (collection) {
})
但请注意,所有 where 子句都必须出现在 limit 和 orderBy 子句之前。
到目前为止,还没有 bookshelf.js 解决方案。 使用 knex 查询构建器可以轻松实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.