解决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

原文地址:https://www.cnblogs.com/dreamer-lin/p/13674413.html