在用户界面上可能需要用户回复的评论数据,如果一条评论是另外一条评论的回复,这条评论的 parentId 栏目会记录它回复的评论的 id 。
打开 comment.middleware,修改一下之前在这里创建的 filter 中间件,在里面再添加一种过滤,用户的回复。先要做一下判断,判断的是,如果设置使用了 user 还有 action 查询符,同时这个 action 查询符的值等于 replied ,并且没有设置 post 查询符。这种情况就是要过滤出某个用户的回复评论。
设置一下 request.filter ,把过滤器的 name 设置成 userReplied, 再设置一下 sql,过滤的条件是 comment.parentId IS NOT NULL ,并且 comment.userId 等于某个值,这里先用一个占位符表示,这个占位符的具体的值可以交给 param 属性,设置成 user,这个 user 就是在客户端使用评论列表接口的时候设置的 user 查询符,它的值是某个用户的 id。
在 HTTP 客户端,可以测试一下,打开 评论列表 请求,修改一下请求的地址,/comments?user=3&action=replied,这个请求的意思就是找出 id=3 的这个用户的回复评论。 发送一下这个请求,这次得到的评论数据就是 id=3 的这个用户的回复。
一共找到两条回复,一个 id 是6,一个是 5。 在数据库客户端,观察一下 comment 数据表, 你会发现 id 是 5 还有 6 的这两条评论数据,它们的 userId 栏目的值都是 3,而且它们的 parentId 栏目都有值,说明这两条评论是回复评论。