我最近一直在学习nest.js的美好世界。
我本周与之奋斗的一件事是在我的功能之一中增加了分页,使我可以切换文档。我尝试了许多包裹,但它们似乎都没有做到正确。因此,我走开了,试图找出最好的方法,我需要它很简单。
现在,在我开始之前,我必须说这不是一个完全起步的分页,并且在大多数情况下不会为您提供所有想要的功能。但是,这将做的是提供一种简单的方法,以在数据群之间移动并具有页面计数。
所以我们使用的是mongodb和nest.js,我假设您已经设置了此设置,并且已经准备好了。
因此,我们设置了一个实体,并且我们提供了所有人的控制器和服务。因此,让我们从控制器开始。
@Get('get')
async getdata(@Query() {limit, skip}) {
return this.testService.getTests(
skip,
limit)
}
我们上面拥有的是一个简单的控制器函数,它为我们提供了“/get”的终点,并且返回服务传递的两个参数是跳过和限制的。跳过和限制参数是通过URL携带的,@Query拾取了这些参数。
/get?skip=8&limit=8
所以让我们前往服务,以便我们可以看到我们在这里做什么
async getTests(
skip = 0,
limit = 8,
) {
const count = await this.testModel.countDocuments({}).exec();
const page_total = Math.floor((count - 1)/ limit) + 1;
const data = await this.testModel.find().limit(limit).skip(skip).exec();
return {
data: data,
page_total: page_total,
status: 200,
}
}
好的,我们在这里拥有的是skip and Limit并向它们添加默认值的服务。
使用以下行,我们计算文档并进行一些数学以确定页面计数是什么。
const count = await this.testModel.countDocuments({}).exec();
const page_total = Math.floor((count - 1)/ limit) + 1;
然后,我们从mongo数据库中获取数据,然后将跳过并限制到find()。毕竟,我们简单地返回页面总计和数据。
这是一个真正简单的分页的方法,并允许我们通过数据移动。
感谢您的阅读,并有一个良好的星期日!