如何访问npm模块抛出的自定义错误对象[错误:[object Object]]

时间:2016-05-02 01:29:45

标签: javascript arrays node.js object error-handling

npm模块生成此格式的错误。

throw new Error(error.data.errors)

其中error.data.errors

{ email: [ 'is invalid' ] }

当我尝试在我的代码的catch块中访问它时,它出现为

[Error: [object Object]]

如何从catch块访问原始错误/错误消息?

1 个答案:

答案 0 :(得分:2)

我刚刚进行了一些实验,在这种情况下,你似乎无法做很多事情。当它被抛出时,看起来JavaScript会在错误消息上调用.toString()。默认情况下,这是所有对象的"[object Object]"

据我所知,修复方法是打开一个拉取请求,将错误的抛出更改为以下内容:

throw new Error(JSON.stringify(error.data.errors));

通过此更改,您可以在捕获错误时解析JSON。

try {
  // Whatever functionality causes the error.
} catch (e) {
  var errors = JSON.parse(e.message);
}