nodejs基于mongodb的populate多集合联合查询进行文章渲染的报错问题

SyntaxError: Unexpected token T in JSON at position 0

背景
  • 查询author数据用到了多集合联合查询populate()
const articles = await Article.find().populate('author');
  • res.send(articles) 展示如下:
    在这里插入图片描述
  • 看这样子我是拿到了author
  • 然后进行文章渲染
res.render('admin/article',{
articles:articles
})
  • 循环articles进行渲染文章时用到author里的username时,我用{{$value.author.username}}进行获取
  • 然后就报错了
来看下我的错误信息
  • SyntaxError: Unexpected token T in JSON at position 0
我又把{{$value.author.username}}删除再看了下,发现能正常渲染出来

在这里插入图片描述

然后我又将 其他能正常渲染出来的代码进行了修改 比如:{{@value._id}}改为{{@$value._d}}故意写错
页面渲染肯定是报错的.而我发现报错信息和用{{$value.author.username}}渲染时报错信息是一样的
  • SyntaxError: Unexpected token T in JSON at position 0
出现这个问题说实话我是到现在也没找到解决方法,如有大佬知道问题所在,请告知.谢谢你.
没办法,我只能通过最笨的方法,在article里再加上username属性,从User集合构造函数里拿到username并通过修改article的username赋值给它

在这里插入图片描述

然后渲染时直接用{{$value.username}}渲染赋值.最后看了下页面效果.是能看到预期效果的.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值