现在可以去定义一个在数据仓库里调取评论列表用的功能,打开 comment.service ,把这个功能放在这个文件里面,先在这个文件的顶部,从 comment.provider 里导入 sqlFragment,位置是当前目录下面的 comment.provider 模块。这个 sqlFragment 里面有查询需要用到的一些查询片断。
然后找一个地方,去定义这个获取评论列表用的功能,定义并且导出一个异步函数,名字是 getComments, 在这个函数里面,先准备一个 SQL 参数,用 let 声明一个 params ,它的类型是 Array ,数组里的项目是 any ,先让它等于一个空白的数组。
下面再准备一段要执行的查询,声明一个 statement ,用一个字符模板组织一段查询,SELECT comment.id 还有 comment.content,再加上 sqlFragment 里的 user ,它的值是这个评论内容的作者相关的数据,下面再添加一个 sqlFragment 里的 post 。
在 FROM 的后面设置数据来源,这里就是 comment 数据表, 然后要在查询里拼接 user,avatar 还有 post 数据表,把 sqlFragment 里的 leftJoinUser 放进来,还需要 sqlFragment 里的 leftJoinPost。
在查询里再用 GROUP BY 设置按 comment.id 分组,再用 ORDER BY,排序方式设置成按 comment.id 降序排列。
再去执行一下这段查询,const 方括号,data ,await 执行 connection.promise(),调用 query 方法,要执行的查询是 statement,查询里需要的参数设置成 params。
最后可以让这个函数提供点数据,让它 return 的就是上面的这个从执行结果里面解构出来的这个 data,它的值应该就是一组评论数据。