gpt4 book ai didi

node.js - 在启动删除操作之前,Sequelize 有没有办法检查表中是否存在一行?

转载 作者:行者123 更新时间:2023-12-03 22:33:05 24 4
gpt4 key购买 nike

我正在使用 Sequelize ORM 和 NodeJS、Express 和 Postgres 来设置 CRUD API。我的 delete 路由的逻辑如下所示:

app.delete('/deleteuser/:id', authenticateJWT, (req, res) => {
(async () => {
await User.destroy({where: {id: req.params.id}})
.then(() => {
console.log(`User ${req.params.id} deleted`)
res.sendStatus(200)
})
.catch((err) => {
console.log(err)
res.sendStatus(500)
})
})();
})
即使我传递的 id 值不在数据库中,这也会向我发送 200 OK 状态。我尝试设置一个计数变量和 User.count(...) 来检查行可用性,部分成功。但是,这似乎有点令人费解。有没有更好的办法?

最佳答案

只需添加到您自己的 (@Meera) 响应中即可。
这不是一种解决方法,实际上是库的工作方式。销毁它将返回已删除的行数。所以例如:

User.destroy({where: {name: 'X'}})
.then(numberRows=> {
console.log(`${numberRows} User rows deleted`);
res.sendStatus(deletedUser?200: 406)

});
https://sequelize.org/master/class/lib/model.js~Model.html#static-method-destroy

关于node.js - 在启动删除操作之前,Sequelize 有没有办法检查表中是否存在一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64952555/

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