2017-04-14 84 views
0

我有一个数据库的文件,我想从它检索一些数据,提供一个Foxx服务的密钥数组。它使用单个字符串,但我错过了有关实现数组的一些东西。在服务概览页面上的一个很好的解释由阿朗戈Foxx服务阵列处理

修订

router.get('/keys', function (req, res) { 

    const keys = db._query(aql` 
     FOR huis IN test 
     FILTER huis._key in ${req.queryParams.keys} 
     RETURN { 
      'adres': huis.adres, 
      'postcode': huis.postcode, 
      'plaats': huis.plaats 
     } 
    `); 

    res.send(keys); 
}) 
.queryParam('keys', joi.array().required(), 'query to search for') 
.response(joi.array() 
    .items(
     joi.string().required() 
    ) 
    .required(), 'List of house keys.') 
    .summary('List house keys') 
    .description('Makes LAT LNG from house keys.'); 

的joi.array()效果如下图所示。但我处理它错了,因为它返回一个404

enter image description here

回答

0

如果你传递一个数组,你需要使用一个queryParam或bodyParam而不是pathParam。

我建议将路由器路径更改为router.get('/keys', function (req, res) {,然后访问值为req.queryParams.keys

当您通过queryParam发送数组时,您可以使用一些选项,如/keys?keys=1234,5678/keys?keys=1234&keys=5678

+0

谢谢,现在我得到消息''查询参数\“键\”必须是一个数组''所以数组处理仍然不确定。 joi requieres数组,API页面显示一个数组字段,我提供了一个数组,然后它说它需要是一个数组.. – Thijs

+0

当我把它放在我应该用新行分隔符添加键的地方时,它会工作:'[ 374875“,”387781“]' – Thijs

+0

你去了哪里,有很多方法可以用参数表示一个数组,很高兴你能够正常工作。 –