用户登录

现在我们可以去定义创建标签用的接口了,先定义一下接口需要的处理器,打开 tag.controller,在文件的顶部,从 tag.service 导入点东西,需要 createTag 还有 getTagByName。

下面定义一下要创建标签接口的处理器,名字是 store,在这个函数里面可以先准备点需要的数据,可以从请求的主体里面,把 name 解构出来,我们可以要求客户端使用 创建标签 接口的时候必须要在请求主体里面添加一个 name 属性,它的值就是要创建的标签的名字。

然后用一段 try,catch 区块,在 catch 区块里可以处理一下在 try 区块里要做的事情发生的异常情况,执行 next() 带着 error。

再设置一下 try 区块里的东西, 这里先要问一下数据仓库,要创建的这个标签在数据仓库里是否已经存在,添加一个 tag,await 用一下 getTagByName,把要查询的标签名交给它。

下面判断一下,如果标签存在,可以报个错误, if tag ,如果找到了标签,就 throw 一个 new Error,错误信息是 TAG_ALREADY_EXISTS

throw 异常,就会转到执行 catch 区块里的代码,这里执行了 next ,带着 error,所以异常又会交给应用默认的异常处理器那里处理。

打开 app/app.middleware,修改一下在这里定义的 defaultErrorHandler,添加一种新的情况,错误信息是 TAG_ALREADY_EXISTS ,如果是这个错误信息,就可以把响应的状态码设置成 400,然后把响应的信息设置成标签已存在。

回到 tag.controller,继续编辑创建标签接口的处理器。 如果要创建的标签不存在,就可以存储一下标签数据,添加一个 data,等于 await ,用一下 createTag,提供一个对象参数,里面放一个 name,就是要创建的标签名。

最后可以让处理器做出一个响应,用一下 response,status 把响应的状态码设置成 201,成功创建了资源可以使用这个状态码,再用 send 把 data 发给客户端。

打开 tag.router,在这个文件里可以定义创建标签接口,先在文件顶部导入接口需要的东西,导入 authGuard,这个东西来自上级目录的 auth 里的 auth.middleware

下面找个地方定义创建标签接口, 用一下 router.post 定义这个接口,接口地址设置成 /tags,接口用一下 authGuard 中间件,接口处理器设置成 tagController.store.

定义创建标签用的接口《 Node.js 服务端应用开发:内容标签 》

统计

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

社会化网络

关于

微信订阅号

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