我有一个get请求,该请求返回使用Knex从数据库中获取的对象数组,我想使用.map返回这些对象,并赋予它们可访问的元素。但是这样的最后一个元素是sum(),所以我不知道如何访问它。可能是一个非常简单的问题,但我只是不明白。
下面添加的我当前的函数将返回除总计之外的所有内容。即将区域称为资源区域工程。但是请求返回的总和为'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.????}))
}
答案 0 :(得分:0)
诀窍是为您的结果提供可用的名称。这使得以后引用它们变得容易得多。例如:
knex
.from('animals')
.select('animals.name', 'areas.lat', 'areas.lng', req.params.area)
.sum(`${req.params.area} as areaSum`)
通过这种方式,总和在您的结果中可作为areaSum
使用。