我需要更改status
并返回受影响的行:
db.Member.update({
status: 0
}, {
where: {
id: member.id,
group_id: member.group_id,
}
}).then((updatedMember) => {
console.log("Member" + updatedMember)
// This returns 'Member 1',
// and the in the DB, the status field does change to 0
}).catch((err) => {
console.log("err " + err)
})
在.then
区块内,我updatedMember
为1
。另外,如果我将status
更改为表格中不是字段的其他内容,即joe: 0
,updatedMember
仍会返回1
。
问题:
可以.update
返回受影响的对象吗?
如果我要更改表格中不存在的字段,是否应该收到错误?
答案 0 :(得分:0)
如果您使用的是postgres,并且仅限于......
根据文档(http://sequelize.readthedocs.io/en/v3/api/model/#updatevalues-options-promisearrayaffectedcount-affectedrows),update函数返回一个包含两个对象的数组,第一个是受影响的行数,第二个是实际受影响的行(但仅当您使用postgres时)。如果您使用的是mysql,则无法使用。
因此,我认为您可以将代码更改为以下内容,它应该可以工作:
db.Member.update({
status: 0
}, {
where: {
id: member.id,
group_id: member.group_id,
}
}).then((updatedMember) => {
//updatedMember[0] will now be 1, updatedMember[1] should be the affected row
console.log("Member" + updatedMember[1])
}).catch((err) => {
console.log("err " + err)
})