node.js - 字符串查询参数被转换为数组
问题描述
我在某些 nodejs 服务器中遇到问题,其中字符串查询参数被解析为数组而不是保存为字符串。所以像这样的东西https://somedomain.com/test?first=val&token=secret
会在 nodejs 服务器上被解析,这样 in 的值params.first
是['val']
代替,'val'
而 in 的值params.token
是['secret']
代替'secret'
。不寻常的是,我在不相关的 nodejs 服务器中看到了这一点。一个是在生产中运行的 aws lambda,另一个是我使用的本地开发express.js
服务器bodyParser
。每个都有不同的代码库。在过去,我遇到了qs的问题package 由于它解析数组的方式,但这个问题似乎完全不相关,我似乎无法在其他地方找到类似的问题。有谁知道是什么导致了这种行为?谢谢!:)
解决方案
我最终发现问题在于 url 多次具有相同的查询参数,而querystring包通过为每个值创建一个数组来处理这个问题。该软件包已弃用,因此我切换到推荐的URLSearchParams替代方案,并修复了 url 中的重复问题。
推荐阅读
- github - GitHub - 自动化组织帐户工作流程时的身份验证最佳实践
- c++ - 为什么 clang 和 GCC 不使用 xchg 来实现 std::swap?
- apache-kafka - Confluent JDBC 源连接器增量起始行
- kubernetes - Minikube: bash: /usr/local/bin/minikube: 没有这样的文件或目录
- material-ui - 材质 UI 网格对齐
- jquery - 带有客户端模板的字段的 Kendo Grid 过滤器
- java - Java 中的 Oracle 函数
- vba - 将工作表名称输出到 ACCESS VBA 中的表中
- node.js - 如何永远为 Node 中的日志文件提供相对路径
- google-colaboratory - 我可以和其他人一起使用 Google colabs 吗?