【发布时间】:2017-08-14 18:36:35
【问题描述】:
我想更新一个名为 client 的表。以下代码适用于有效的 id,但对于无效的,它只是挂起而不调用 catch 函数。
knex('client').where('id',id).update({
name:req.body.name
}).then(function(numberOfUpdatedRows) {
if(numberOfUpdatedRows) {
res.json(success);
return;
}
}).catch(function(err){
res.status('500');
res.json(err);
return;
});
});
我解决了这样的问题:
knex('client').where('id',id).select('id').then(function(id){
if(id) {
//update
}else {
//failed
}
}).catch(function(err){
console.log("select id do not exist");
res.send("do not exist");
});
对于这种情况,对于无效的 id,knex 不会调用 catch 函数,而是挂断返回一个空的 id 值,我用它来检查错误。
我是初学者,我确信有更好的方法来做到这一点。
有人可以提出更好的方法吗?
此外,我在knex documentation 中找不到太多关于 knex 如何处理此类错误情况的信息。那么我在哪里可以找到这些信息,以便我将来自己解决它们。谢谢。
【问题讨论】:
-
首先验证您的数据。
-
查看我的解决方案。 @FazalRasel 不需要验证。