用户登录

在 typeOrm 里面提供的 Repository 可以处理对应类型的实体数据。

先打开数据库客户端,打开 user 这个数据表,然后手工在这个表里插入两条记录,分别设置一下 id, name ,还有 password。再添加一条记录,id 是2 ,名字是小雪,密码是 123123。

回到项目,打开 GetUserQueryHandler 这个查询处理器,在这里我们可以使用 Repository 处理 user 数据表里的数据。

首先要注入要使用的 Repository,在构造方法里,要用一下 @InjectRepository 这个装饰器,提供 Repository 对应的实体的类型,这里就是 UserEntity。

下面添加一个私有属性,private readonly 名字是 userRepository,类型是 Repository。这样在这个类里面就可以使用这个 userRepository 处理 User 实体数据了,也就是 user 这个数据表里的数据。

在这个 execute 方法里面,用一下 this.userRepository.findOne 这个方法,提供一个 id 参数,这样这个方法可以查询出指定 id 的用户数据。

在运行项目的终端,观察一下,你会发现这里提供了一个错误,说找不到要使用的 Repository,解决这个问题需要在这个 GetUserQueryHandler 所属的模块里面,导入 User 模块。

打开 user-show.module ,因为 User 模块也会依赖 UserShow 模块,所以这里导入 User 模块的时候,要使用一个 forwardRef 方法,提供一个回调参数,让它返回要导入的模块,这里就是 UserModule。

这样控制台上的错误就不见了。

测试

然后在 Http 客户端测试一下,发送一下这个单个用户请求,这次会返回在应用的 user 数据表里面,id 号是 1 的这条记录里的数据。

修改一下请求的地址,把 userId 参数设置成 2 ,再发送一下请求,这回得到的响应就是 user 数据表里面,id 号是 2 的用户数据。

使用 Repository 处理实体数据《 Nest.js 企业级后端实践:应用构架 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点