Nest.js学习之路(20)-TypeORM(7)Query Builder Select(下)

时间:2019-08-13 来源:www.eekac.com

日日博娱乐场

  这一章关于Query Builder会用的功能做介绍,主要是

  分页(pagination)

  select部分属性

  隐藏属性

  有三个变量,建立新的queryUserDTO

  新增getUsersByRoleName在user.service.ts

  使用Postman测试

  1637794-2157a687f225e4d7.png

  .png

  有时候不想expose所有属性,可以用select来筛选,当然也有object mapping的套件把部分属性mapping到新的class上,但先就选择部分属性为例,假设只想要name, 及roleName,其他如plat则不需要

  使用postman测试

  1637794-5c5e9967ec42937c.png

  .png

  原因是有SELECT u.id,这里TypeORM并不会自动产生,但有,所以要自己加,或是直接select alias

  在select加上u.id

  使用postman测试

  1637794-6a71ed8f32a5167a.png

  .png

  如果有一个属性在大多数时候都不希望被select到,只有少数情况会用到,typeorm提供隐藏属性的概念,在QueryBuilder中select entity或是Repository find预设不会被选到,则需要在属性上设定,如User Entity的password属性

  在user.entity下新增password属性

  用postman测试,会发现所有返回的用户都没有带password属性

  那如何在query的时候让password出现呢

  修改query, 新增addSelect让password出现

  使用postman测试

  1637794-710ee40dd15118f9.png

  .png

  密码属性出现

  推荐一下我的公众号: 【 geekjc 】,微信号: 【 c 】一起学习交流编程知识,分享经验,各种有趣的事。

  1637794-07fef021753c68e0.png

  tuiguang.png

达到当天最大量