nodejs - JSON.stringify错误对象

时间:2014-07-28 15:13:59

标签: node.js

我正在尝试将Error object转换为JSON。但是,Error message似乎丢失了。

try{
    require('someModule');
}catch(error){
    console.log(JSON.stringify(error)) //{"code":"MODULE_NOT_FOUND"}
}

我做错了什么吗?我该如何解决?

1 个答案:

答案 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()