nestjs简单分页处理

1、代码配置

其实就是帮queryBuilder做了最后一步getManyAndCount,把返回值进行了统一 

import { SelectQueryBuilder } from "typeorm";

export const SelectQueryBuilderPagination = async (
    queryBuilder: SelectQueryBuilder,
    queryParams: {
        currentPage: number,
        pageSize: number,
        [key: string | number]: any
    }

) => {
    queryBuilder.skip((queryParams.currentPage - 1) * queryParams.pageSize).take(queryParams.pageSize);

    const [records, total] = await queryBuilder.getManyAndCount();

    return {
        records,
        totalPages: Math.ceil(total / queryParams.pageSize),
        total,
        currentPage: Number(queryParams.currentPage),
        pageSize: Number(queryParams.pageSize),
    }

}

2、使用

把queryBuilder和分页传入进去就可以啦

  async findAll(params:any) {
    const qeuryBuilder = this.usersEntity.createQueryBuilder();
    return SelectQueryBuilderPagination(qeuryBuilder,params)
  }

你可能感兴趣的:(javascript,开发语言,ecmascript)