【发布时间】:2021-10-21 15:29:35
【问题描述】:
我在某些 nodejs 服务器中遇到问题,其中字符串查询参数被解析为数组而不是保存为字符串。所以像 https://somedomain.com/test?first=val&token=secret 这样的东西会在 nodejs 服务器上被解析,这样params.first 中的值是['val'] 而不是'val',params.token 中的值是['secret'] 而不是'secret'。不寻常的是,我在不相关的 nodejs 服务器中看到了这一点。一个是在生产中运行的 aws lambda,另一个是本地开发服务器,我在其中使用 express.js 和 bodyParser。每个都有不同的代码库。过去,由于 qs 包解析数组的方式,我遇到过问题,但这个问题似乎完全不相关,我似乎无法在其他地方找到类似的问题。有谁知道是什么导致了这种行为?谢谢! :)
【问题讨论】:
-
你用什么来发出请求?
-
你有没有办法查看网络流量,比如fiddler?如果这样做,使用的 url 是否有逗号或大括号?喜欢
https://somedomain.com/test?first=val,&token=secret,?这将导致它成为一个数组。不过,有很多方法可以最终形成一个数组。这里有一个很好的解释Arrays in query params -
谢谢。只需阅读链接的文章,确实其中之一就是问题所在。感谢您的帮助。
标签: node.js aws-lambda query-string body-parser query-parameters