Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Express中访问从get请求返回的对象中的元素时遇到问题_Javascript_Node.js_Express_Knex.js - Fatal编程技术网

Javascript 在Express中访问从get请求返回的对象中的元素时遇到问题

Javascript 在Express中访问从get请求返回的对象中的元素时遇到问题,javascript,node.js,express,knex.js,Javascript,Node.js,Express,Knex.js,我收到一个get请求,返回一个使用Knex从数据库中获取的对象数组,我想使用.map返回它们,并为它们提供可访问的元素。但最后一个元素本身是sum(),所以我不知道如何访问它。可能是个很简单的问题,但我就是不明白 我在下面添加的当前函数返回我想要的所有内容,除了总数。i、 e.参考区域作为res.area工程。但请求将总和返回为“总和(区域)”:20。所以我想我想知道如何引用一个没有变量名的和 router.get("/search/:param",function(req,res,next)

我收到一个get请求,返回一个使用Knex从数据库中获取的对象数组,我想使用.map返回它们,并为它们提供可访问的元素。但最后一个元素本身是sum(),所以我不知道如何访问它。可能是个很简单的问题,但我就是不明白

我在下面添加的当前函数返回我想要的所有内容,除了总数。i、 e.参考区域作为res.area工程。但请求将总和返回为“总和(
区域
)”: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

诀窍是为结果提供可用的名称。这使得以后更容易引用它们。例如:

knex
  .from('animals')
  .select('animals.name', 'areas.lat', 'areas.lng', req.params.area)
  .sum(`${req.params.area} as areaSum`)

通过这种方式,总和在结果中可用作
areaSum

你能发布
行的值吗
RowDataPacket{area:'Sydney',lat:lattitude,lng:Longtude,'sum(
areas
):20},这是其中一行返回的值非常奇怪的属性,你可以像
res['sum(areas)'那样访问它
ahh yeap确实如此,cheers如果你发布
RowDataPacket{area:'Sydney',lat:latitude,lng:longtude,'sum(
areas
)':20}的值,这是其中一行返回的非常奇怪的属性,你可以像
res['sum(areas)]一样访问它。
ah yeap确实如此,谢谢