javascript - 访问从 Express 中的 get 请求返回的对象中的元素时遇到问题
问题描述
我有一个 get 请求,返回一个使用 Knex 从数据库中获取的对象数组,我想使用 .map 返回它们,为它们提供可访问的元素。但是最后一个元素是 sum(),所以我只是不明白如何访问它。可能是一个非常简单的问题,但我就是不明白。
我在下面添加的当前函数返回除总数之外的所有内容。即引用区域作为 res.area 作品。但是请求将总和返回为'sum(areas
)':20。所以我想我想知道如何引用没有变量名的总和
router.get("/search/:param",function(req,res,next)
{
req.database.from('animals')
.select('animals.name', 'areas.lat', 'areas.lng', req.params.area)
.sum(req.params.area).groupBy('animals.name')
.leftJoin('areas','req.params.area', 'areas.area')
.then((rows) => {
const x = mapFunction(rows)
res.send({query: req.params.area, result: x})
})
})
function mapFunction(results) {
return results.map((res) =>
({area: res.area, lat: res.lat, lng: res.lng, total: res.????}))
}
解决方案
诀窍是为您的结果提供可用的名称。这使得以后引用它们变得更加容易。例如:
knex
.from('animals')
.select('animals.name', 'areas.lat', 'areas.lng', req.params.area)
.sum(`${req.params.area} as areaSum`)
这样,总和就可以areaSum
在您的结果中使用。
推荐阅读
- tensorflow - Tensorflow:Caffe 中 Tensorflow 的密集层相当于什么?
- angular - 如何将 Angular Material Datepicker 数字更改为阿拉伯/波斯字符?
- django - 更新某个模型时如何在另一个模型中获取或创建对象?
- r - 如何在变异的“ifelse”语句中使用“and”语句?
- mysql - LeetCode 1179:重新格式化部门表(MySQL)
- python - Matplotlib - ValueError:子图的非法参数
- python-3.x - python pandas,python Dask在第一次加载时比julia CSV快吗?
- javascript - addEventListener 没有被分配给 JavaScript 中的按钮
- json - jq - 计算匹配选择的项目数
- angular - 无法读取未定义的属性“无效”