解決Mongoose中populate方法導致模板引擎art-template無法渲染的問題,錯誤-RangeError: Maximum call stack size exceeded


 

 

 問題定位:

 

 產生原因:

目前只知道因為populate()方法導致該現象,但具體是怎么導致的還未知

 

 

解決方案:

方案一:

可以在查詢鏈上使用lean()。告訴mongoose返回普通對象 不返回mongoose文檔對象

// 解決方案1:
// 使用lean()
let articleData = await Article.find().populate('author').lean();

 

 

方案二:

先通過JSON.stringify()這個方法將文檔對象轉為字符串,將他的其他屬性全部格式掉,只需要留下需要的數據字符串即可!

然后再通過JSON.parse()這個方法轉為對象,這個方法雖然丟失效率,但是暫時解決問題,后面有更好的解決方案或者樓主得到了原因會更新解決方法和方案!代碼附上,希望了解該問題的大神能提點一二!

 

 

 

參考鏈接

https://www.cnblogs.com/jeacy/p/13560379.html

https://blog.csdn.net/qq_40659195/article/details/88411838

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM