在 typeOrm 里面提供的 Repository 可以处理对应类型的实体数据。
先打开数据库客户端,打开 user 这个数据表,然后手工在这个表里插入两条记录,分别设置一下 id, name ,还有 password。再添加一条记录,id 是2 ,名字是小雪,密码是 123123。
回到项目,打开 GetUserQueryHandler 这个查询处理器,在这里我们可以使用 Repository 处理 user 数据表里的数据。
首先要注入要使用的 Repository,在构造方法里,要用一下 @InjectRepository 这个装饰器,提供 Repository 对应的实体的类型,这里就是 UserEntity。
下面添加一个私有属性,private readonly 名字是 userRepository,类型是 Repository
在这个 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 的用户数据。