我在续集中更新一行的代码 - MySQL - Express如下
// Update an user
userController.update = function(req, res) {
models.user.update(
{
user_name: req.body.name,
user_address: req.body.address,
user_email: req.body.email,
}, {where: {user_id: req.params.id}, returning: true, plain: true})
.then((user)=>{
res.redirect("/users/show/"+user.user_id);
})
.catch((err)=>{
console.log(err);
res.render("../views/users/edit", {user: req.body});
});
};
但是user.user_id显示的是undefined的值 如何在sequelize
中获取更新行的字段和值答案 0 :(得分:1)
update
返回受影响的行数作为第一个参数。如果您需要受影响的对象,可以使用spread
// Update an user
userController.update = function(req, res) {
models.user.update(
{
user_name: req.body.name,
user_address: req.body.address,
user_email: req.body.email,
}, {where: {user_id: req.params.id}, returning: true, plain: true})
.spread((affectedCount, affectedRows) => {
// use affectedRows here
})
.catch((err) => {
console.log(err);
res.render("../views/users/edit", {user: req.body});
});
};
如果您想使用.then
像这样使用.then(function([ rowsUpdate, [usersUpdated] ]) {
答案 1 :(得分:0)
从官方文档开始,只有options.returning true
的postgres支持此功能
http://docs.sequelizejs.com/class/lib/model.js~Model.html#static-method-update