javascript - 将循环结构转换为 JSON?
问题描述
我从数据库中获取它我想格式化这个数据,但我得到以下错误
TypeError: Converting circular structure to JSON
--> starting at object with constructor 'NativeConnection'
| property 'base' -> object with constructor 'Mongoose'
| property 'connections' -> object with constructor 'Array'
--- index 0 closes the circle
at JSON.stringify (<anonymous>)
at formatReportOutput (E:\Application\routes\data.js:97:50)
以下是我从数据库中获取的数据
var routput = [{
"_id" : ObjectId("59920689253dfa0544f26b93"),
"INumber" : "535264",
"IID" : "25544825",
"DateReceived" : ISODate("2017-08-14T20:22:33.350Z"),
}]
我的代码:下面是我区分标头和值以及格式值的代码。格式值表示 mongodb id ,date
预期输出:
标头:_id、INumber、IID、DateReceived
值:59920689253dfa0544f26b93,535264,25544825,2017-08-14
当我自动传递任何数据时,它应该显示在 table(ng-table(angularjs)) 中,这意味着不需要硬编码标题我们传递的任何内容应该显示。
请帮我解决一下这个。
解决方案
在调用 formatOutput 或在查询中使用 lean() 之前,将从 mongo 检索到的文档转换为纯 javascript 对象。
假设 routput 来自 mongoose 查询,如果您在将查询传递给函数之前调用 .lean() 查询或数组实例上的 .toObject() ,则 formatOutput 可能会按预期工作。
所以,像这样:
var routput = await Model.find().lean();
var header ="Yes";
formatOutput(routput, header);
或这个:
var routput = await Model.find();
var header ="Yes";
formatOutput(routput.map(x => x.toObject()), header);
应该足够了。
参考:
推荐阅读
- python - 将 for 循环更改为 .apply() 期间发生错误
- reactjs - React 中的 MUI RadioGroup 设置
- reactjs - 空输入提交时显示值类型错误消息而不是必需的错误消息
- linux - Readline 不读取在 INPUTRC 变量中指定的用户配置
- mongodb - Mongoose 没有自动增加 __v
- javascript - 无法在 React 组件中接收和显示道具
- flutter - 是否可以在 Flutter 中更改所选标签栏图标的大小?
- assembly - NASM:在我的打印功能中出现分段错误
- javascript - Splay Tree 实现:搜索功能 - Zag zag 旋转错误
- json - 将表示 JSON 的字符串切片转换为 JSON 并响应请求