[英]Converting circular structure to 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"),
}]
我的代碼:下面是我區分 header 和值和格式值的代碼。 格式值表示 mongodb id,date
預期 output:
標頭:_id、INumber、IID、DateReceived
值:59920689253dfa0544f26b93,535264,25544825,2017-08-14
當我自動傳遞任何數據時,它應該顯示在 table(ng-table(angularjs)) 中,這意味着不需要硬編碼標題我們傳遞的任何內容都應該顯示。
請幫我解決一下這個。
在調用 formatOutput 之前,將從 mongo 檢索到的文檔轉換為普通的 javascript object 或在查詢中使用lean()。
假設 routput 來自 mongoose 查詢,如果在將查詢傳遞給 function 之前,在查詢上調用 .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);
應該足夠了。
參考:
也許您沒有將await
與 mongoose 方法一起使用。 我忘了添加等待,然后發生錯誤:
const indexUsers = async (req, res, next) => {
try {
const users = await db.User.find();
return res.status(200).json(users);
} catch (err) {
next(err);
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.