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

 

posted @ 2020-09-15 23:06  西伯利亚狼dreamer  阅读(727)  评论(0编辑  收藏  举报