我正在尝试将Error object
转换为JSON。但是,Error message
似乎丢失了。
try{
require('someModule');
}catch(error){
console.log(JSON.stringify(error)) //{"code":"MODULE_NOT_FOUND"}
}
我做错了什么吗?我该如何解决?
答案 0 :(得分:9)
该问题与错误上设置的某些属性配置为不可枚举的事实有关。
您可以使用以下内容正确地对Error对象进行字符串化,它会设置toJSON()
转换对象时JSON.stringify()
查找的方法:
var config = {
configurable: true,
value: function() {
var alt = {};
var storeKey = function(key) {
alt[key] = this[key];
};
Object.getOwnPropertyNames(this).forEach(storeKey, this);
return alt;
}
};
Object.defineProperty(Error.prototype, 'toJSON', config);
然后正常使用JSON.stringify()
。