将对象传递给节点的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.messageerr.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);