我正在返回一个Error
对象,我传递了一个对象(而不是简单的消息):
if (err) {
return myCallback(new Error({
error_code: 'sample_machine_readable_code',
error_message: 'There is an error in the response from the service.',
error: err
}));
}
控制台中的结果是[Error: [object Object]]
。我尝试将其属性作为数组的属性和对象进行访问,但总是以undefined
结束。 JSON.stringify
- 它返回一个空对象{}
。通过"访问"我的意思是尝试记录错误,例如。使用console.log(err);
(最终位于[object Object]
)或err.message
或err.Error
或err['Error']
,但这些是undefined
。
我正在阅读Node's Error class docs,似乎可以传递物品。我错了吗?我应该只返回一个简单的自定义构造对象而不是new Error
吗?像那样:
if (err) {
return myCallback({
error_code: 'sample_machine_readable_code',
error_message: 'There is an error in the response from the service.',
error: err
});
}
Cuz我只想使用Node提供的更多内容,并坚持使用一些广泛使用的约定,而不是按照我自己的方式"。
答案 0 :(得分:12)
您可以做的只是创建Error
的实例并为其分配自定义属性,如下所示:
var error = new Error("There is an error in the response from the service");
error.error = err;
error.error_code = "sample_machine_readable_code"
return myCallback(error);