对象有点交叉引用,所以需要屏蔽一下,才能转换。 所以看有什么简单的办法,把parent这样的字段给屏蔽掉。
实现 toJSON 方法
delete 或者赋成undefined呢
/** * 返回安全的JSON字符串 * * @param {Object} data * @param {String|Number} space * @return {String} * @api public */ var jsonStringify = function (data, space) { var seen = []; return JSON.stringify(data, function (key, val) { if (!val || typeof val !== 'object') { return val; } if (seen.indexOf(val) !== -1) { return '[Circular]'; } seen.push(val); return val; }, space); };
使用方法:
var a = {b: 123, c:456}; a.a = a; // 这个会自动把a.a替换成字符串[Circular] console.log(jsonStringify(a)); // 输出结果为:{"b":123,"c":456,"a":"[Circular]"} // 第二个参数可以用来格式化字符串 console.log(jsonStringify(a, 2)); /* 输出结果: { "b": 123, "c": 456, "a": "[Circular]" } */
这个我记得有谁讲过,忘记了 mongoose里回调函数返回的数据是一个mongoose提供的model对象,该对象拥有api中model的所有方法,但是toString或者toJSON方法只会打印出数据库查出来的文本信息,而不会打印api中的model的方法
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
实现 toJSON 方法
delete 或者赋成undefined呢
使用方法:
这个我记得有谁讲过,忘记了 mongoose里回调函数返回的数据是一个mongoose提供的model对象,该对象拥有api中model的所有方法,但是toString或者toJSON方法只会打印出数据库查出来的文本信息,而不会打印api中的model的方法