将对象传递给节点的Error类将返回一个不可访问的对象
我返回一个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
它返回一个空对象{}
。 通过“访问”我的意思是试图logging错误,fe与console.log(err);
(最后在[object Object]
)或err.message
或err.Error
,或者err['Error']
,但这些都是undefined
。
我正在通过Node的错误类文档阅读,似乎可以传递对象。 我错了吗? 我应该只返回一个简单的自定义构造的对象,而不是一个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 }); }
因为我只是想使用更多的节点提供的东西,并坚持一些广泛使用的约定,而不是“我自己的方式”。
你可以做什么,只是创build一个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);