@dotcom-可靠性-kit/序列化-error
一个用于序列化一个错误对象的功能,其方式对日志,查看引擎,以及转换为JSON是友好的. 此模块是 FT.com 可靠性工具包。 。 。 .
使用量
安装 @dotcom-reliability-kit/serialize-error 作为依附关系:
npm install --save @dotcom-reliability-kit/serialize-error
在代码中包含 :
import serializeError from '@dotcom-reliability-kit/serialize-error';
[TIP] 如果您使用此软件包并带有 TypeScript , 我们建议您使用以下设置:
tsconfig.json避免类型错误的文件 :{ "esModuleInterop": true, "module": "nodenext", "moduleResolution": "nodenext" }
serializeError
这个 serializeError 函数接受类似错误的对象(例如 Error 或带有 message 属性),并返回一个平版 JavaScript 对象(符合 SerializedError 类型包含相关属性:
serializeError(new Error('example message'));
// {
// id: null,
// fingerprint: '...',
// name: 'Error',
// code: 'UNKNOWN',
// message: 'An error occurred',
// isOperational: false,
// relatesToSystems: [],
// cause: null,
// stack: '...',
// statusCode: null,
// data: {}
// }
在普通对象中也可以通过,如果您已经有一个看起来像出错的物体(例如来自JSON API响应):
serializeError({
message: 'example message'
});
SerializedError 类型
这个 SerializedError 类型文档的返回值 serializeError 函数。它将永远具有以下属性,从给定的错误对象中提取这些属性.
SerializedError.id
这取自于 error.id 财产,但只有在它是一个 String默认 null。 。 。 .
SerializedError.fingerprint
这是错误堆栈第一部分的散列,用于帮助代码库同一部分发生的分组错误. 指纹是 null 如果错误不包括堆栈跟踪.
[尖叫声]
不要依赖错误指纹的格式或长度,因为下面的散列可能会不提前变化. 你个 能够 取决于指纹对所抛出错误类型的独特性.
SerializedError.name
这取自于 error.name 总是被扔到一个 String默认 "Error"。 。 。 .
SerializedError.code
这取自于 error.code 总是被扔到一个 String默认 "UNKNOWN"。 。 。 .
SerializedError.message
这取自于 error.message 总是被扔到一个 String默认 "An error occurred",但我们希望这个库能够适应出乎意料的输入数据.
SerializedError.isOperational
这表明错误是否在运行(已知). 见文档 OperationalError 更多信息。 这是从 error.isOperational 属性。 它总是被一个 Boolean 默认为 false。 。 。 .
SerializedError.relatesToSystems
此数组包含一个列表 系统代码 与错误有关。 它默认为空数组 .
SerializedError.cause
这是从“% 1” 中提取的错误实例 error.cause 属性,在分配前按序列排列。 默认为 null。 。 。 .
SerializedError.errors
这是从 error.errors 财产(例如来自 总和错误) (中文(简体) ). 错误在被指定之前进行序列化.
SerializedError.stack
这取自于 error.stack 属性。 如果此属性不是字符串, 那么它将默认为 null。 。 。 .
SerializedError.statusCode
这取自于 error.statusCode 属性,然后是 error.status 属性(我们使用两个属性来保持与第三方请求和错误库的相容性)。 这些总是被扔到一个 Number 此属性默认为 null。 。 。 .
SerializedError.data
这取自于 error.data 属性。 如果此属性不是普通对象, 那么它会默认为空对象 : {}。 。 。 .
移动
咨询 移徙指南 如果你想要迁移到这个软件包的后期主要版本.
捐款
见 可靠性工具包中心贡献指南。 。 。 .
许可证
凭 麻省理工学院 执照.
版权:"2022","金融时报"有限公司.