如何将节点 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 中的错误对象正确转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章