koa2 查询数据库得到的结果对象,添加新属性,前端异步获取不到

发布于 2022-09-06 22:52:05 字数 538 浏览 16 评论 0

1、首先,通过查询,取得订单列表,然后通过for循环,为每个订单对象添加用户名和用户密码,我console.log 的时候,控制台是有输出的,不过我,ctx.body = {data:orderList},的时候,在前端页面通过异步得到的结果,并没有用户名和用户属性,请看下图
后台koa2代码:

clipboard.png

前端页面异步获取的结果:

clipboard.png

为什么在后端打印出来是有的,异步后去得到的确是没有我添加的user_name 和 user_headurl 属性呢?求助

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

桃气十足 2022-09-13 22:52:05

我用:JSON.stringify 和 JSON.parse 执行一遍返回的对象后,我就可以往此对象上添加属性了,不过我还是不太清晰具体原因
最新修改:
查找Sequelize的API发现,有一个setDataValue的方法,可以用于查询返回的对象设置值的,将原来问题的代码,改为如下就可以了:

for (let i = 0; i < orderList.length; i++) {
    let userInfo = await wdUser.findById(orderList[i].user_id)
    orderList[i].setDataValue('user_name',userInfo.user_name)
    orderList[i].setDataValue('user_headurl',userInfo.user_headurl)
}

API链接:https://itbilu.com/nodejs/npm...

小伙你站住 2022-09-13 22:52:05

在查询的时候添加一个raw: true条件,就可以直接赋值了。

锦上情书 2022-09-13 22:52:05

mongoose改写了toJSON方法 你后来添加的属性都不会在toJSON方法中返回。也就是说不是schema里定义的是不会返回的

定格我的天空 2022-09-13 22:52:05

你需要将document object转化成javascript object
链接

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文