我正在学习ArangoDB和Foxx,到目前为止,我的体验非常棒!不过,我有一个问题:
对于Foxx路由器,可以指定queryParams,例如/graph/nodes?eyes=blue&hair=blond。
但让我烦恼的是,我被迫(或者至少在几次尝试之后,我有这样的印象),我不得不编写硬代码,而我期望的是eyes和hair的查询参数。
这真的是真的吗?如果是的话,这附近有工作吗?对我来说,这在nosql的上下文中有点奇怪,能够在集合中存储任何属性的文档。
我希望能够在?之后获取URL的整个部分,对字符串执行一个split("&"),并捕获请求的任何部分。
有办法在Foxx框架内做到这一点吗?
任何帮助都将不胜感激!
发布于 2016-08-04 15:50:04
我不知道你为什么认为你是被迫的。唯一的区别应该是对指定为queryParam的查询参数进行验证(如果提供了模式)并记录在案。
您应该能够只使用req.queryParams来访问其他查询参数:
router.get(function (req, res) {
res.json(req.queryParams);
})
.queryParam('documented', joi.number().optional());获取/?documented=23 -> {"documented": 23}
获取/?more=42 -> {"more": "42"}
这假设您使用的是ArangoDB 3.0,而不是在遗留兼容性模式下运行为2.8编写的Foxx服务(也就是说,您使用的是称为路由器的东西,而不是称为控制器的东西)。
发布于 2016-08-04 07:12:58
好的,通过使用var query_params = req.originalUrl.split("?")[1];,我自己找到了解决方案。然后,使用原始查询参数获得我想要的字符串。从手册中:
originalUrl: string 请求的根相对URL,即路径后面有原始查询参数(如果有的话)。
https://stackoverflow.com/questions/38754730
复制相似问题