用户登录

下面我们要去定义删除评论用的接口,先打开 comment.controller,在这个文件的顶部,从 comment.service 里面把 deleteComment 导入进来。它可以从数据仓库里把指定的评论数据删除掉。

然后找个地方定义一下删除评论接口的处理器,处理器的名字叫 destroy,在处理器里面先准备点需要的数据,可以从请求的地址参数里把 commentID 解构出来,地址参数都在 request.params 里面。一会儿设计删除评论接口的时候,我们会在接口的地址里添加这个参数。

下面要去执行删除评论,先用一组 try,catch,在 try 里面,执行删除评论,添加一个 data,等于 await ,用一下 deleteComment 这个函数,把要删除的评论的 id 交给它。地址参数里的 commentId 的值就是要删除掉的评论的 id,不过它的类型是字符串,所以这里要用 parseInt 把它转换成数字。

让这个处理器再给客户端做出一个响应,用一下 response.send ,把 data 发给客户端。

在 catch 区块里处理一下删除评论遇到的问题,执行 next ,带着 error,把问题交给应用默认的异常处理器去处理。

打开 comment.router, 在这里要定义一下删除评论这个接口,用一下 router.delete 这个方法,这样接口就会支持 HTTP 的 DELETE 方法使用。接口的地址是 /comments/:commentId,这个 commentId 是个地址参数,它的值就是要删除掉的评论的 id 。

接口要验证用户的登录状态,所以用一个 authGuard,还需要检查当前用户是不是拥有这个要删除掉的评论,就是要确定这个评论是这个用户发表的。再用一个 accessControl 中间件,一个对象参数,把 possession 设置成 true 。

接口的处理器可以用一下 commentController 里的 destroy 这个方法。

定义删除评论接口《 Node.js 服务端应用开发:发表评论 》

统计

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

社会化网络

关于

微信订阅号

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