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

时间:2016-03-13 23:01:16

标签: javascript mysql json node.js

每当我在mysql中输入重复的条目时,都会抛出此错误。

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

我想要做的是将此Error对象转换为字符串。我尝试使用JSON.stringify(),当我在控制台上打印时,只有最后一部分被转换为字符串:

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

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

3 个答案:

答案 0 :(得分:17)

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

err.toString()

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

console.log(error.stack)

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