gpt4 book ai didi

node.js - ExpressJS : Sequelize method update need to show updated data as result not num of row updated

转载 作者:行者123 更新时间:2023-12-03 22:37:31 29 4
gpt4 key购买 nike

我有使用 ExpressJS 和 ORM Sequelize 的 API。我正在尝试使用 Sequelize 中的 update() 方法进行更新。默认情况下,it 方法将返回更新的行数。但我希望结果是刚刚更新以显示为响应的新数据。

这是我的代码:

update: async function (req, res, next) {
var current_address_id = req.body.current_address_id,
address = req.body.address

PersonalInfo.findOne({
where: {
id: req.params.id
}
}).then(personal => {
Address.create(
{
address: address,
}
).then( resAddress => {
PersonalInfo.update(
{
current_address_id: resAddress.dataValues.id
},
{
where: {
id: req.params.id
}
}
).then(resultUpdate => {
console.log(resultUpdate);
responseUtil.success(res, resultUpdate);
}).catch(err => {
responseUtil.fail(res, err);
})
})
})
}

当我做 console.log(resultUpdate); 它给我 [1] 作为更新的行数。我需要的是刚刚更新的 PersonalInfo 的数据。

最佳答案

在查阅有关 Sequelize 的 update 操作返回的内容的文档后,它返回以下内容:

an array with one or two elements. The first element is always the number of affected rows, while the second element is the actual affected rows (only supported in postgres with options.returning true.)



因此,正如您从代码中看到的,您的更新将返回一个包含受影响行数的数组,这就是文档所说的。您无法更改库本身将返回的内容。

您确实可以访问您之前在函数中更新的值,如果您确实需要,您可以在您正在更新的记录上进行查找,这将返回您的模型: http://docs.sequelizejs.com/class/lib/model.js~Model.html#static-method-findOne

关于node.js - ExpressJS : Sequelize method update need to show updated data as result not num of row updated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57132261/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com