我在NodeJS上运行Express,我收到类似https://myserver.com/processCampaign?id=12345679&campaignId=123456
的请求。
Express将其转换为id=12345679&%3BcampaignId=123456
。所以现在我无法获得campaignId,因为我在查询字符串中得到了'amp;campaignId':'123456'
。
所以我想知道,我在Express中遇到了什么问题,或者我应该以不同的方式处理它?</ p>
答案 0 :(得分:0)
在快递中,多个查询与&#39;&amp;&#39;分开。你不需要使用&#39; amp;&#39;在下一个查询字符串之前。在您的情况下,下面的网址将为您提供id和campaignId查询。
https://myserver.com/processCampaign?id=12345679&campaignId=123456
如果您现在记录req.query,您将获得
{ id: '12345679', 'campaignId': '123456' }
答案 1 :(得分:0)
因为我无法控制入站请求(这是不正确的),所以我别无选择,只能在我这边处理它。我已经读过入站URI很可能是不正确的,因为它们正在进行双重编码。
以下是我提出的解决方案:
JSON.parse(JSON.stringify(req.query).replace('amp;campaignId', 'campaignId'))
如果有人有更好的想法,我会接受其他解决方案。