首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Foxx:怎么不用预先定义queryParams?

Foxx:怎么不用预先定义queryParams?
EN

Stack Overflow用户
提问于 2016-08-03 22:33:21
回答 2查看 204关注 0票数 1

我正在学习ArangoDB和Foxx,到目前为止,我的体验非常棒!不过,我有一个问题:

对于Foxx路由器,可以指定queryParams,例如/graph/nodes?eyes=blue&hair=blond

但让我烦恼的是,我被迫(或者至少在几次尝试之后,我有这样的印象),我不得不编写硬代码,而我期望的是eyeshair的查询参数。

这真的是真的吗?如果是的话,这附近有工作吗?对我来说,这在nosql的上下文中有点奇怪,能够在集合中存储任何属性的文档。

我希望能够在?之后获取URL的整个部分,对字符串执行一个split("&"),并捕获请求的任何部分。

有办法在Foxx框架内做到这一点吗?

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-04 15:50:04

我不知道你为什么认为你是被迫的。唯一的区别应该是对指定为queryParam的查询参数进行验证(如果提供了模式)并记录在案。

您应该能够只使用req.queryParams来访问其他查询参数:

代码语言:javascript
复制
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服务(也就是说,您使用的是称为路由器的东西,而不是称为控制器的东西)。

票数 2
EN

Stack Overflow用户

发布于 2016-08-04 07:12:58

好的,通过使用var query_params = req.originalUrl.split("?")[1];,我自己找到了解决方案。然后,使用原始查询参数获得我想要的字符串。从手册中:

originalUrl: string 请求的根相对URL,即路径后面有原始查询参数(如果有的话)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38754730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档