如何将节点 js 中的错误对象正确转换为字符串?

Posted

技术标签:

【中文标题】如何将节点 js 中的错误对象正确转换为字符串?【英文标题】:How do I convert an Error object in node js to a string properly? 【发布时间】:2016-06-28 20:50:57 【问题描述】:

每当我在 mysql 中输入重复条目时都会引发此错误。

[Error: ER_DUP_ENTRY: Duplicate entry 'sample@gmail.com' for key 'email '] code: 'ER_DUP_ENTRY', errno: 1062, sqlState: '23000', index: 0

我想要做的是把这个错误对象变成一个字符串。我尝试使用 JSON.stringify() 并且当我在控制台上打印它时,只有最后一部分被转换为字符串:

"code":"ER_DUP_ENTRY","errno":1062,"sqlState":"23000","index":0

我还需要转换错误的第一部分,即 [ ] 内的部分,以便我能够正确诊断重复项。每当我将 Error 对象转换为字符串时,如何检索该部分?

【问题讨论】:

【参考方案1】:

由于错误对象的格式化方式,我认为我必须使用 JSON 来解决这个问题。我如何解决这个问题只是为了使用

err.toString()

【讨论】:

如果你想要完整的堆栈跟踪用户 err.stack nodejs.org/api/errors.html#errors_error_message【参考方案2】:

要获取完整堆栈,请使用Error 对象的stack 属性:

console.log(error.stack)

https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/Error/stack

【讨论】:

【参考方案3】:

以备将来参考,以防您希望提取错误消息。使用error.message 提取消息。这是一个参考:https://nodejs.org/api/errors.html#errors_error_message

【讨论】:

以上是关于如何将节点 js 中的错误对象正确转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何将此对象转换为 PHP 中的数组

JS如何把一个数字数组转换成一个数字。

GBK与UTF-8编码错误转换后,无法再正确恢复

无法将应用程序/八位字节流解析为节点 js 中的图像

C#如何将OBJECT转换成数组

JQuery 将字符串转换为节点对象