Javascript 将循环结构转换为JSON?
我从数据库中得到它,我想格式化这些数据,但我得到下面的错误Javascript 将循环结构转换为JSON?,javascript,jquery,node.js,Javascript,Jquery,Node.js,我从数据库中得到它,我想格式化这些数据,但我得到下面的错误 TypeError: Converting circular structure to JSON --> starting at object with constructor 'NativeConnection' | property 'base' -> object with constructor 'Mongoose' | property 'connections' -&
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)
我的代码:
下面是我用来区分标题和值以及格式值的代码。
格式值表示
mongodb id,日期
预期产出:
标题:_id、INumber、IID、DateReceived
数值:59920689253DFA0544F26B93535264255448252017-08-14
当我自动传递任何数据时,它应该显示在表(ng table(angularjs))中,这意味着不需要硬编码我们传递它时应该显示的标题
请帮我解决这个问题。在调用formatOutput或在查询中使用lean()之前,将从mongo检索到的文档转换为普通javascript对象 假设routput来自mongoose查询,如果在将formatOutput传递给函数之前对查询调用.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);
应该足够了
参考文献:
wait
与mongoose方法一起使用。我忘记添加wait,然后出现错误:
const indexUsers = async (req, res, next) => {
try {
const users = await db.User.find();
return res.status(200).json(users);
} catch (err) {
next(err);
}
};
添加负责数据库连接的代码以及打印formatOutput函数的输出将有助于理解问题I已给定数据库(mongodb)输出(routput)。您给出了错误描述,而不是触发错误的调用代码。您能在这方面帮助我吗?
const indexUsers = async (req, res, next) => {
try {
const users = await db.User.find();
return res.status(200).json(users);
} catch (err) {
next(err);
}
};