如何使用Sequelize验证数据记录是否已成功更新
判断Sequelize update操作更新成功的方法
- 默认情况下,Sequelize的
update方法会返回一个长度为2的数组,第一个元素为本次操作实际修改的行数,你只要判断该值大于0就说明更新操作生效。
示例代码如下:// 解构获取返回数组的第一个元素,即受影响行数 const [affectedRows] = await model.IPAdress.update(data,{ where: { id } }); if (affectedRows > 0) { console.log('记录更新成功'); } else { console.log('未匹配到对应id的记录,或提交的更新内容与原有记录完全一致,无内容修改'); } - 如果需要进一步校验更新后的内容是否符合预期,可以在update配置项中添加
returning: true,此时返回数组的第二个元素就是更新后的实例列表,单条更新场景可以搭配plain: true直接获取单个实例:const [affectedRows, updatedRecord] = await model.IPAdress.update(data, { where: { id }, returning: true, plain: true }); if (affectedRows > 0) { // 打印更新后的完整记录 console.log(updatedRecord.toJSON()); // 可选:对比更新内容与预期是否一致 const isContentCorrect = Object.keys(data).every(key => updatedRecord[key] === data[key]); if (isContentCorrect) { console.log('更新内容与预期一致'); } }
补充说明:如果提交的更新内容和数据库原有记录完全相同,即使匹配到了对应id的记录,受影响行数也会返回0,该场景不属于更新失败,只是没有需要修改的内容。
内容的提问来源于stack exchange,提问作者user17242278
相关产品推荐
相关产品推荐

