AWS(Amazon Web Services)提供了一系列的服务,在前端中我们常常需要使用 AWS 的服务。但是,当这些服务出现错误时,返回的错误信息以 JSON 格式返回,其中可能含有嵌套的对象和数组,非常难以阅读。为了方便处理这些错误信息,AWS 官方提供了一个 npm 包 @aws-sdk/json-error-unmarshaller,可以十分方便的将 JSON 格式的错误信息转换为易读的对象。
安装
首先,我们需要使用 npm 安装这个包:
npm install @aws-sdk/json-error-unmarshaller
使用
使用时,我们只需要传入一个包含错误信息的 JSON 对象,@aws-sdk/json-error-unmarshaller 就可以将其转化为 JavaScript 对象。
const { unmarshall } = require('@aws-sdk/json-error-unmarshaller'); const error = { "__type": "com.amazonaws.dynamodb.v20120810#ResourceNotFoundException", "message": "Requested resource not found" } const unmarshalledError = unmarshall(error); console.log(unmarshalledError);
输出结果:
{ code: 'ResourceNotFoundException', name: 'ResourceNotFoundException', message: 'Requested resource not found' }
在这个例子中,我们将请求一个 DynamoDB 资源没有找到时返回的错误 JSON 对象传入函数 unmarshall 中,即可得到转换后的易读对象,其中包含错误编码、错误名称和错误信息三个属性。
实际应用
在实际应用中,我们可以将其用于异常处理逻辑中,将 AWS 服务返回的 JSON 格式的错误信息转化为可读的对象,方便前端进行异常处理。比如:
-- -------------------- ---- ------- --- - ----- -------- - ----- -------------- ------- ----------- --- ------------------- ------- --------------- ---------- - ----- ------- - ----- ----------------- - ------------------ -- ----------------------- --- --------------- - ------------------------- --- -------- ------- - ---- -- ----------------------- --- ---------------------- - ------------------------- ------- --------- ------- - ---- - ---------------------- ------- ------- - -
在这个例子中,我们创建一个 S3 存储桶,如果发生错误,就将其转化为易读对象,并根据错误编码进行异常处理。这样,我们就可以在前端代码中很方便地处理 AWS 服务返回的错误信息。
总结
通过使用 @aws-sdk/json-error-unmarshaller,我们可以将 AWS 服务返回的 JSON 格式错误信息转化为易读对象,方便前端进行异常处理。在实际应用中,我们可以将其用于异常处理逻辑中,减少错误处理逻辑的复杂度。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6f59d0a9b7065299ccba6f