【发布时间】:2014-04-12 22:35:52
【问题描述】:
我有一个只创建用户、管理会话和删除用户的学习应用程序。后端在 Node.js 中。
我有检索用户列表的查询
var userList = function ( page, callback ) {
user.find({}, function ( err, doc ) {
if (err) {
callback (err);
}
callback ( doc );
});
};
然后我有处理程序将其发送回应用程序
var userList = function ( req, res ) {
var page = req.param.page;
models.account.userList( page, function ( result ) {
res.json ( 200, result );
});
};
在客户端,我获取结果并将它们显示在浏览器的表格中。
我想要完成的是将列表拆分为...的页面...假设...每个用户 10 个。所以使用函数 userList 的参数 Page 我希望发送正确的答案:
第 1 页:结果 0 到 9 第 2 页:结果 10 到 19 等等
我可以做一个循环来提取我想要的东西,但我确信从查询中接收整个用户列表以在循环中重新处理它以仅提取 10 个用户不是正确的方法,但我想不通找出正确的方法是什么。
我已经用谷歌搜索了,但没有找到我想要的答案。还可以快速查看 MongoDB 文档。
你可以猜到我是新手。
您能帮我指导一下这个简单任务的正确方法吗?
非常感谢。
使用 bduran 代码,我能够进行我想要的分页。答案后面的代码是:
var userList = function ( page, itemsPerPage, callback ) {
user
.find()
.skip( (page - 1) * itemsPerPage )
.limit ( itemsPerPage )
.exec ( function ( err, doc ) {
if (err) {
//do something if err;
}
callback ( doc );
});
};
【问题讨论】: