在对象上调用JSON.stringify时,NPM'should'库会导致循环引用错误
现在我知道为什么我要避免像修改对象原型那样的库
它看起来像我得到这个错误:
TypeError: Converting circular structure to JSON
当我require('should')
这是预期的吗?
在调用JSON.stringify之前,我可以从要被string化的对象中删除属性,如下所示:
delete obj.should; delete obj.getShould;
但是这很难做到嵌套的对象等。我不得不说,这是非常跛脚,应该导致这一点,但也许我做错了什么。 如何解决这个问题? 我正在写一个库,用户可能require('should')
所以我必须防止这种types的问题。
尽pipe输出稍有不同,但util.inspect()提供的输出没有循环引用。 还提供了定制对象检查的手段。 它会为你工作吗?
Should
不是直接在物体上设置固有的东西 ,而是在原型上 :
Object.defineProperty(Object.prototype, 'should', { set: function(){}, get: function(){ return should(this); }, configurable: true });
它必须是别的东西,防止对象被序列化。
- require.js POST请求察觉networkingAPI返回“错误parsingJSON”
- 尝试从Node.js插入文档到CouchDB时,出现“bad_request invalid_json”错误
- 是否有一个asynchronousJSONparsing器的Node模块不会将整个JSONstring加载到内存中?
- 将MongoDB结果string化为NodeJs的http响应
- 如何在MongoDB中创build一个字段不可改变?
- 需要使用Socket ioparsing生活的json文件
- 无法从手机访问返回的json数据
- json_encode在encryption的string上不起作用
- js2xmlparser不parsing数字键