我的代码如下:
data = await photo.findOne({
where : {id}
})
返回数据
{
"a" : 2,
"b" : 5
}
我想操纵数据,比如插入一些字段
所以我添加了属性:
data.c = data.a * data.b
我在console.log中检查添加的数据
{
"a" : 2,
"b" : 5,
"c" " 10
}
但是当我回到json时
return res.status(200).json({message: "success", data })
数据仍然是第一个 { "" :2, " B" :5 }
答案 0 :(得分:0)
您遇到问题的原因是
Finder方法旨在查询数据库中的数据。它们不返回普通对象,而是返回模型实例。因为finder方法返回模型实例,所以您可以调用结果上的任何模型实例成员,如实例文档中所述。
当data.c = data.a * data.b
执行此操作时,您基本上 将属性添加到模型实例而不是数据对象 。
您可以执行类似
的操作dataInstance = await photo.findOne({
where : {id}
})
data = dataInstance.get({
plain: true // Important
})
data.c = data.a * data.b;
干杯。不要忘记验证答案。
答案 1 :(得分:0)
最后,经过大量搜索,我找到了答案。你应该做这样的事情
const users = await db.users.findAll({})
.map(el => el.get({ plain: true })) // add this line to code