Foxx 服务阵列处理

Foxx Service Array handling

我有一个包含文档的数据库,我想从中检索一些数据,为 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() 导致 Arango 在服务概览页面上进行了很好的解释,如下所示。但是我处理错了,因为它 returns 一个 404.

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

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

当您通过 queryParam 发送数组时,您有几个选项,可以是 /keys?keys=1234,5678/keys?keys=1234&keys=5678.