gpt4 book ai didi

javascript - 如何强制检查由 node.js 服务器处理的 http 请求的查询字符串中的特定参数序列?

转载 作者:行者123 更新时间:2023-11-28 19:48:40 31 4
gpt4 key购买 nike

来自node.js documentation

querystring.parse('foo=bar&baz=qux&baz=quux&corge')

// returns
{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }

当我在服务器端解析参数时,有没有办法检查这些参数是否按正确的顺序发送?

例如,我想强制 foo=bar 始终是第一个参数,依此类推。这是如何实现的?

现在我可以做这样的事情:

var queryData = querystring.parse('foo=bar&baz=qux&baz=quux&corge');

但是然后做

if(queryData.foo) {...}

仅检查参数“foo”是否存在于网址中,而不检查它是否位于正确的位置

最佳答案

您可以自己解析它,如下所示:

var qs = 'foo=bar&baz=qux&baz=quux&corge';
var parsed = qs.split('&').map(function (keyValue) {
return keyValue.split('=');
});

这会给你类似的东西 [ ['foo','bar'], ['baz', 'qux'], ['baz', 'quux'], ['corge', '' ],然后你可以检查第一个是否是你想要的:if (parsed[0][0] === 'foo')

这个问题你也可以自己解析一下:How can I get query string values in JavaScript?

或者你可以相信,nodejs 会按照接收到的顺序插入属性,而 v8 将保持顺序(这并不真正可靠,它们可能会改变行为): if (Object.键(queryData)[0] === 'foo')

或者你可以检查 foo 是否首先出现:

if (qs.indexOf('foo=') === 0)

或类似 if (qs.slice(0, 4) === 'foo')

关于javascript - 如何强制检查由 node.js 服务器处理的 http 请求的查询字符串中的特定参数序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23862513/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com