用户登录

NinghaoNgCamp:用过 Angular 才知道它有多强大。了解详情 / 报名参加 →

在 Comment 服务里定义一个可以查询出指定内容的评论列表的方法,方法的名字可以是 showPostComments,方法接收一个 id 参数,类型是 number,这个 id 的值应该是一个内容的 id。

方法里面 return 的是 await,用一下 this.commentRepository,先用 createQueryBuilder,创建一个查询构建器,别名是 comment。

然后用 leftJoinAndSelect,关系是 comment 上的 user,别名设置成 user,接着可以再用一个 leftJoinAndSelect,关系是 comment.post,别名设置成 post。

下面再用 where 设置一个查询条件,条件是 post 的 id 等于一个参数名字叫 :id,然后在 where 的第二个参数里设置一下前面需要的这个 id 参数的值,这里就是 id ,也就是 showPostComments 方法接收的 id 参数。

最后再用 getMany,查询出这个评论列表。

查询指定用户发布的评论跟这个方法差不多,复制一份,修改一下方法的名字,showUserComments,这个方法的 id 参数的值应该是用户的 id 号。

查询的时候设置的条件应该修改成 user 的 id。

控制器

打开 Comment 控制器,用 @Get 定义一个路由,地址是 posts/:id/comments。

路由处理方法的名字叫 showPostComments,方法接收一个 id 参数,用 @Param 装饰它,给它一个 id,用 ParseIntPipe 把它转换成数字类型的值,参数的名字叫 id,类型是 number。

方法 return 的是 await,用一下 this.commentService,showPostComments,它需要一个 id。

复制一份这个路由,处理的方法名字叫 showUserComments,方法里 return 的是执行 this.commentService 上的 showUserComments 返回的结果, 修改一下路由地址,users/:id/comments。

测试

打开 Http 客户端,可以测试一下,新建一个请求,名字叫 Show Comments,请求用的方法是 GET,请求的地址是 localhost:3000/posts/ 加上一个内容的 id ..

在 comment 表里查看一下,Id 号是 11 的内容有一些评论, posts/11 斜线,comments。

发送一下这个请求,得到的响应就是 id 号是 11 的这个内容上的评论列表。

打开 post 表,找个内容再给它添加一个评论,比如再让杜甫评论一下 id 号是 3 的这个内容。

配置一个评论请求,请求的地址是 posts/3/comments。

设置一下评论内容,发送一下这个请求 ..

然后打开 Show Comments,用 GET 方法 请求 posts/3/comments,请求得到的就是 id 号是 3 的这个内容的评论列表。

查看一下 comment 表里的评论,id 号是 7 的这个用户有一些评论。

再到 Http 客户端配置一个请求,地址是 users/ 加上用户的 id 号,然后是 comments。

这次得到的响应就是 id 号是 7 的用户发布的所有评论。

查询内容与用户的评论《 Nest.js 应用框架:评论 》

统计

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

社会化网络

关于

微信订阅号

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