在mongoose中 实现集合关联时,导致模板引擎art-template无法渲染
最近用Node写一个项目,使用 express + art-template + MongoDB 数据库,使用了 mongoose 包,集合关联时查询的数据无法通过 art-template渲染
报错
RangeError: Maximum call stack size exceeded
at String.toString (<anonymous>)
JSON.parse转换 报错
SyntaxError: Unexpected token R in JSON at position 0
at JSON.parse (<anonymous>)
经过测试,使用 自定义数据
没问题
原因:mongoose 返回文档对象太过庞大造成
解决办法
1、JSON转换
let result = Article.find().populate('author')
// 将文档对象转为 JSON字符串
let str = JSON.stringify(result)
// 在转为 JSON对象
let articles = JSON.parse(str)
2、lean方法
使 mongoose
返回的是普通对象
,而不是mongoose文档对象
let result = Article.find().populate('author').lean()