node.js - 使用 Dynamoose.js 和 Angular6 进行分页
问题描述
是否有使用 Dynomoose.js 使用 Angular 实现分页的良好实践。我想使用 scan.limit() 从数据库中获取一些电影,例如 20。如何获得第二次扫描 20-40 电影和 40-60 电影?我应该使用 scan.startAt(key) 来检索更多数据吗?
exports.listing = (req, res, next) => {
MoviesModel.scan()
.exec()
.then(movies=> {
if(movies.lastKey){
MovieModel.scan().startAt(movies.lastKey).exec(function(err, movies){
res.json(movies);
});
}
})
.catch(err => next(err));
};
解决方案
一种简单的方法总是在这里是在客户端执行分页,例如,ngx-pagination
请参见此处:
<ul>
<li *ngFor="let item of collection | paginate: { itemsPerPage: 10, currentPage: p }"> ... </li>
</ul>
<pagination-controls (pageChange)="p = $event"></pagination-controls>
在后端只需返回所有记录Model.scan().exec()
并将它们存储在collection
属性中:
exports.listing = (req, res, next) => {
MoviesModel.scan()
.exec()
.then(movies=> {
if(movies.lastKey){
MovieModel.scan().exec(function(err, movies){
res.json(movies);
});
}
})
.catch(err => next(err));
};
推荐阅读
- python - 结构与解包
- python - 获取错误 ModuleNotFoundError at / No module named 'sekizai'
- c# - 我怎样才能让 pc unity 游戏也能在手机上运行?
- django - 如何使用 Digital Ocean 配置 Google 域?
- amazon-web-services - 当 AWS Lambda 超时时会发生什么?
- laravel - Laravel 8:从TestCase,如何将路由的数据提供给控制器的方法?
- python - 比较两个文件并删除公共行
- html - 链接 rel="prerender" 带有重定向的页面
- r - 如何使用一串数字作为矩阵R的坐标点
- javascript - 在不更改索引的情况下重新排序数组