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
.
我有一个包含文档的数据库,我想从中检索一些数据,为 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
.