简介
在前端开发过程中,我们在处理 API 错误时需要一个好的错误处理机制。而 @anyhowstep/json-api-error 就是一个快速创建 JSON-API 规范错误响应的 npm 包。
本文将详细介绍 @anyhowstep/json-api-error 的使用方法,包括如何安装、如何使用以及如何定制错误响应。
安装
首先需要全局安装 npm 包:
npm i -S @anyhowstep/json-api-error
使用
快速使用
在使用 @anyhowstep/json-api-error 之前,我们需要构建一个它需要的上下文对象。这个上下文对象包含了 API 的 URL 地址、请求的数据对象、响应数据对象等信息。
接下来,我们就可以在代码中使用该 npm 包了。
-- -------------------- ---- ------- ----- - ------------- ---------------------- - - -------------------------------------- ----- ------------ - ------- ---- ---- ----- -- - ----- ------------ - --- -------------- ------- ------------- ------ -------------- ------- ----------- --- ------------------------------------------------------- -- -- ----- ----- -------- ----- -------- ----- ---------- ------------------- ----- ---- ----- -- - ----- ----- - --- ----------------- ------------ - ---- ------------ --- -- ------ ----- -------- --- ----- --- ------ ----------------------------------------------
上面的示例代码中,我们定义了一个 express 统一错误处理的函数。在这个函数里面,我们使用 JsonApiError 创建了一个符合 JSON-API 规范的错误响应。
JsonApiError 接受具有 status
、title
和 detail
属性的对象。这些属性都是可选的,但是最好指定它们以确保错误响应符合 JSON-API 规范。
要注意的是,在定义业务逻辑的 middleware 后调用中间件传递给 errorHandler,可以不用判断所有的业务逻辑语句都检查和返回错误。使用 JsonApiErrorMiddleware 可以减少大量模板代码和缩短错误处理过程。
自定义的错误类型
我们还可以通过继承 JsonApiError
自定义错误类型,如下所示:
-- -------------------- ---- ------- ----- --------------- ------- ------------ - ------------------- - ------- ------- ---- ------ ---- --------- ------ --- - - -- ----- ---- ------ ----- --------------- - --- -------------------- ---- ------------- -- ----- ---- ------ ---- ----- ------------------- - --- -------------- ------- ---- ------ -------------- ------- --- -- ------ ------- -- - -- --------- -- -- --------- ------ -- -------- ---- --------- -- --------- ---- ---- ----------- -- -- -- -
自定义的错误类型需要继承 JsonApiError
类,并且在构造函数中将必要的错误信息传递给父类构造函数。这个例子中,我们定义了一个 BadRequestError
类,继承 JsonApiError
,并定义了细节属性。这样我们便可以创建一个 JSON-API 规范的错误响应。
对象数组错误类型
有时候,需要在一个响应中返回多个相同的错误类型, @anyhowstep/json-api-error 提供 createJsonApiErrorFromArray
方法可以解决这个问题。
-- -------------------- ---- ------- ----- --------------- - ----------------------------- ----- - --------------------------- - - -------------------------------------- ----- ----- - -- ------- ---- ------ ---- --------- ------- ---------- - -- --- ------ -- - ------- ---- ------ ---- --------- ------- ---------- - -- --- ------ --- ----- ------------ - ---------------------------------- ----------------- -- ------ ------- -- - -- --------- -- -- --------- ------ -- -------- ---- --------- -- --------- ---------- - -- --- ------ -- -- - -- --------- ------ -- -------- ---- --------- -- --------- ---------- - -- --- ------ -- -- -- -
在这个示例中,我们使用了 createJsonApiErrorFromArray
方法,并传递给它一个包含错误对象的数组。最后一个参数是一个表示错误类型的类,它会被用于创建每个错误对象。通过这个方法,我们可以轻松地在一个错误响应中返回多个相同的错误。
总结
通过上面介绍的方法,我们可以更快速地创建符合 JSON-API 规范的错误响应,而不必编写符合指定规范的模板代码。
对于其中的细节,我们需要多实践、多学习,以提升在日常工作中的代码质量。针对不同的业务场景,我们还可以基于现有的类创建自己的错误类型,以适应不同的错误展示需求。
@anyhowstep/json-api-error 包集成了很多方便的功能,如果成为我们日常工作流程中的一部分,一定可以大大提高工作效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedae49b5cbfe1ea0610e00