在中间件或者接口处理器里面,如果发生了异常情况,可以用执行 next() 函数,带着异常信息,这样这个异常就会交到默认的异常处理器那里来处理了。可以先找一个接口随便试一下。
打开 src/post/post.controller.ts ,修改一下 index 这个函数,在函数里面用 if 判断一下,检查 request.headers 里的 authorization 这个头部信息,如果它的值不等于 SECRET,我们就可以触发一个异常。
return next,给它提供一个错误信息,可以新建一个 Error。 注意在 next() 函数的前面,我们加上了一个 return,不加这个关键词的话会继续执行这个接口处理器的其它代码。
在 HTTP 客户端,发送一下 内容列表 请求,这次得到的响应就是应用里的默认的异常处理器发过来的,响应的状态码是 500,响应的数据里面有个 message 属性,提示 服务暂时出了点问题。
下面再配置一下这个请求的头部,添加一个 authorization ,它的值可以设置成 SECRET 。发送一下这个请求,因为在请求头部里包含了这个头部数据,所以这次得到的就是接口做出的正常的响应。