javascript - 更新到数据库后返回更新的对象而不是计数
问题描述
我正在更新食品卡车数据库中的条目。这是我的模型在此特定更新中的样子:
function editTruck(changes, id) {
return db('trucks')
.where({ id })
.update(changes)
.then(id => {
return findTruckById(id);
})
}
我想以对象形式返回实际更新的条目。正如您在上面看到的,我试图通过在模型中使用另一个名为findTruckById
. 这findTruckById
看起来像:
function findTruckById(id) {
return db('trucks')
.select('id', 'name', 'image', 'operator_id', 'cuisine_type', 'physical_address')
.where({ id })
.first()
}
这不起作用,因为从该editTruck
方法返回的响应只是数据库中已更新条目的计数,即 1,而不是条目的 id 或 id 数组。因此,它总是只返回 1,并且在里面运行 1findTruckById
会返回一个对象,该对象相当于卡车数据库中 id 为 1 的条目,这绝对不是我们想要的。我怎么解决这个问题?
解决方案
您已经有了 ID,不需要“更新”来返回它。
function editTruck(changes, id) {
return db('trucks')
.where({ id })
.update(changes)
.then(() => { // you already have the id, just use the `id` that is already in the scope
return findTruckById(id);
})
}
推荐阅读
- c# - 如何使用代码将 Crystal Report 连接到 SQL Server
- laravel - Laravel 安排一次性活动
- python - Scrapy 用户代理被阻止或在远程服务器上不起作用
- pine-script - 您将如何修改此 Tradingview Pine 脚本以使最后一个(当前)实时柱像其他柱一样被打印
- python - 使用字符串评估矩阵以获得特征值
- haskell - 为什么与`Ambiguous type..`错误(在ghci中)有如此不同的行为?
- java - (Java) Telegram Bot API EditMessage 响应:[400] 错误请求:无法编辑消息
- android - Parse 无法删除我想要的对象
- html - 我网站的徽标图像在移动设备上模糊不清
- c# - C# 在保留文件结构的同时解压缩目录中的所有嵌套 zip