我正在编写一个使用名为 LeanCloud 的数据库的应用程序。我设置了一个页面,可以在其中查看数据库上的所有用户,但 LeanCloud 设置为每个请求仅发送 100 条数据。
数据库中目前有 853 个用户,我可以更改一个设置,以便每个请求发送 1000 条数据,但我觉得这会大大降低应用程序的速度,并且用户数量很可能很快就会超过 1000 .
这是我的快速获取路线:
router.get('/', function(req, res, next) {
var query = new AV.Query(usersObject);
var pageNumber = req.query.page
var perPage = req.query.per_page
query.limit(perPage)
query.skip((perPage * pageNumber) - perPage)
query.count(usersObject).then((userCount) => {
query.find().then(function(userData) {
res.json({
userInfo: userData,
pageInfo: {
userCount: userCount,
pageCount: Math.ceil(userCount / perPage),
currentPage: pageNumber
}
});
});
});
});
显然,响应包含userInfo
and pageInfo
,我可以在/api/users?page=1&per_page=30
. 为什么是查询字符串?这将我带到问题的下一部分。
我正在使用主干集合,经过一些研究,我发现主干.paginator是用于分页的主干集合的替代品。这就是构建查询字符串的原因。
export var UserCollection = Backbone.PageableCollection.extend({
model: UserModel,
url: '/api/users',
parse: function(response) {
return response.userInfo
},
state: {
firstPage: 1,
pageSize: 30,
totalPages: null,
totalRecords: null
},
})
在此页面上,有一个表格显示state
并queryParams
说可以设置这些以适应我不完全理解的服务器 API。
我应该在这里做什么?有没有办法可以将服务器响应中的值设置为 queryParams 上的值或来自主干.paginator 的状态?