在前端开发中,我们经常需要处理错误对象,但是 JavaScript 的 Error 对象无法直接转换成 JSON 字符串,这就给错误信息的传递和打印带来了麻烦。为了解决这个问题,可以使用 serializerr
这个 npm 包来将 Error 对象转换成可序列化的对象。
安装
使用 npm 可以很方便地安装 serializerr
包:
--- ------- -----------
实例演示
假设我们有一个函数 foo()
抛出了一个异常,我们先看一下默认情况下 console.log()
打印的错误信息:
--- - -------- ----- - ----- --- ---------------- ---- -------- - ------ - ---------- - ----------------- -
输出结果为:
------ --------- ---- ----- -- --- ----------------------- -- ------------------ ---------------------- -- --------------- --------------------------------------- -- ----------------------------- ---------------------------------------- -- ----------- --------------------------------------- -- --------------------- --------------------------------------- -- ------------------------------ --- -------- ------------------------------------ -- -------------------------------------- - ------ ------- --------- ---- ------- -- --- ------------------------- -- ------------------ ------------------------ -- --------------- ----------------------------------------- -- ----------------------------- ------------------------------------------ -- ----------- ----------------------------------------- -- --------------------- ----------------------------------------- -- ------------------------------ --- -------- -------------------------------------- -- ---------------------------------------- -------- ---------- ---- ------ -
我们可以看到,错误信息中包含了堆栈信息和一些非 JSON 格式的属性,无法直接序列化成 JSON。
现在,我们只需要在打印错误信息之前使用 serializerr
包进行转换即可:
----- -------------- - ----------------------- --- - -------- ----- - ----- --- ---------------- ---- -------- - ------ - ---------- - --------------------------------- -
输出结果为:
- ------- -------- ---------- ---------- ---- ------- -------- ------- --------- ---- ------- -- --- ------------------------- -- ------------------ ------------------------ -- --------------- ----------------------------------------- -- ----------------------------- ------------------------------------------ -- ----------- ----------------------------------------- -- --------------------- ----------------------------------------- -- ------------------------------ --- -------- -------------------------------------- -- ---------------------------------------- ------- ---- -
我们可以看到,使用 serializerr
转换后的结果已经是一个可以被序列化为 JSON 的对象了,便于通过网络或者存储在本地文件中传递和打印。
总结
serializerr
包提供了一种方便、快捷的方式将 JavaScript 的 Error 对象转换成可序列化的对象。在前端开发中,特别是涉及到错误信息传递的场景下,这个包将会大有用处。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/41920