nodejs - JSON.stringify错误对象

use*_*771 4 node.js

我正在尝试转换Error object为JSON.然而,Error message似乎失去了.

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

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

msc*_*dex 10

该问题与错误上设置的某些属性配置为不可枚举的事实有关.

您可以使用以下内容来正确地对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);
Run Code Online (Sandbox Code Playgroud)

然后就像JSON.stringify()正常一样使用.