【发布时间】:2021-09-23 15:14:12
【问题描述】:
我的模型中有一个对象数组(任务)。我想使用 sequelize 从数组中删除一个任务并保存回 db(postgresql)。在这里,我试图找到将删除并更新我的数据库中的任务的任务的索引。但是我的数据库看不到更改。这是我的代码:
var idx=0;
for(var i=0;i<user.tasks.length;i++){
if(user.tasks[i].task_id==req.params.task_id){
idx=i;
break;
}
}
user.tasks.splice(idx,1);
user.update({
tasks:user.tasks
}).then((user)=>{
res.redirect("/seq/task/allTask")
})
})
【问题讨论】:
-
user.tasks.task_id应该是user.tasks[i].task_id? -
@D.Seah 是的,应该是这样,但它仍然无法正常工作
-
如果这是一个数组,你可以使用现代数组方法,比如 findIndex developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
或者更好,过滤:
const itemIdToRemove = req.params.task_id; user.tasks = user.tasks.filter(t => t.task_id != itemIdToRemove);developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
@ChrisBaker 我的用于索引查找的 for 循环工作正常,但在 user.update() 不起作用之后。实际上在 user.update().then((user)=>{console.log(user.tasks)}) 之后也可以正常工作,但更改未在数据库中更新
标签: javascript node.js postgresql sequelize.js