Skip to content

$Dto.selectAndCount

$Dto.selectAndCount用于标注带分页的返回结果

如何使用

$Dto.selectAndCount的使用方式可以参考$Dto.get。不同的是,$Dto.selectAndCount返回当前页的条目列表数据总条数

1. 创建DTO

在 VSCode 中,可以通过右键菜单Vona Create/Dto创建 DTO 的代码骨架:

typescript
@Dto()
export class DtoOrderResultPage {}

2. 继承$Dto.selectAndCount

diff
@Dto()
export class DtoOrderResultPage
+ extends $Dto.selectAndCount(() => ModelOrder) {}

DtoOrderResultPage成员字段

名称说明
list当前页的条目列表
total数据总条数

标注API返回值

以 Controller Order 的 findMany 方法为例,标注 API 返回值:

diff
class ControllerOrder extends BeanBase {
  @Web.get('findMany')
+ @Api.body(DtoOrderResultPage)
  async findMany(
    @Arg.queryPro(DtoOrderQueryPage) params: IQueryParams<ModelOrder>,
+ ): Promise<DtoOrderResultPage> {
    return this.scope.model.order.selectAndCount(params);
  }
}
  • @Api.body:传入 DtoOrderResultPage,用于标注 API 返回值

基于DtoOrderResultPage生成的 Swagger/Openapi 效果如下:

基于 MIT 许可发布