将对象传递给节点错误 class returns 一个不可访问的对象
Passing object to node's Error class returns an unaccessible object
我正在 returning 一个 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
-ing 它 return 是一个空对象 {}
。 "accessing" 我的意思是尝试记录错误 f.e。使用 console.log(err);
(以 [object Object]
结束)或 err.message
或 err.Error
,或 err['Error']
,但这些是 undefined
.
我正在通读 Node's Error class docs,似乎可以传递对象。我错了吗?我应该 return 一个简单的定制对象而不是 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
});
}
因为我只是想更多地使用 Node 提供的功能并坚持一些广泛使用的约定,而不是 "my own way"。
您可以做的是简单地创建一个 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);
我正在 returning 一个 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
-ing 它 return 是一个空对象 {}
。 "accessing" 我的意思是尝试记录错误 f.e。使用 console.log(err);
(以 [object Object]
结束)或 err.message
或 err.Error
,或 err['Error']
,但这些是 undefined
.
我正在通读 Node's Error class docs,似乎可以传递对象。我错了吗?我应该 return 一个简单的定制对象而不是 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
});
}
因为我只是想更多地使用 Node 提供的功能并坚持一些广泛使用的约定,而不是 "my own way"。
您可以做的是简单地创建一个 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);