多个同名查询参数
Posted
技术标签:
【中文标题】多个同名查询参数【英文标题】:Multiple query parameters with same name 【发布时间】:2020-10-16 17:20:59 【问题描述】:我想知道EXPRESS是如何解析的;我在任何地方都找不到任何有用的参考。我想具体了解一下EXPRESS,这个网址www.example.com/page?id=1&id=2&id=3.....id=n
是怎么处理的
【问题讨论】:
这能回答你的问题吗? Correct way to pass multiple values for same parameter name in GET request 不,它谈论哪种方法更好,而不是它们如何工作。另外,我认为每个框架都有自己的解析方式,特别是对于这种极端情况,这就是我提到 EXPRESS 的原因。我在问之前看到了。还是谢谢! Express中的QueryParser是可配置的,默认配置(“扩展”)使用qs解析查询字符串,简单模式使用Node原生的查询解析器querystring,也可以自己定义解析器。我从链接的文档中找不到任何关于双名的内容,但您可以对其进行测试。 嘿@Teemu,感谢您的回复,正如您所提到的,我发现了一些相关性。据我了解,它将它们存储在一个数组中,我认为这是绕过过滤器以包含本地文件的好方法。我只想要一些支持类似论点的具体文档或 RFC 部分。 正如 Eduardo 在 suggested dup 中所说的,“没有定义的标准”,您必须检查实现的文档,在这两种情况下不'似乎不包含想要的信息。因此,找出答案的唯一方法是测试...... 【参考方案1】:您可以使用通常的req.query。每当有多个同名的查询参数时,req.query[paramName]
将返回一个数组而不是值。所以在你的情况下:
app.get("/page", (req, res) =>
const id = req.query
console.log("ID is "+ id)
);
// GET www.example.com/page?id=1&id=2&id=3
// ID is ["1", "2", "3"]
// GET www.example.com/page?id=12345
// ID is 12345
【讨论】:
以上是关于多个同名查询参数的主要内容,如果未能解决你的问题,请参考以下文章