在Nest.js Mongoose中添加简单的分页
#javascript #教程 #node #nest

我最近一直在学习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()。毕竟,我们简单地返回页面总计和数据。

这是一个真正简单的分页的方法,并允许我们通过数据移动。

感谢您的阅读,并有一个良好的星期日!