表示多个同名查询参数不return数组
Express multiple query parameters with same name does not return array
有了这个urlhttp://example.com/users?test=1&test=2
router.route('/users/?').get((req, res) => {
console.dir(req.query) //=> { test : 1 }
})
returns { test : 1 }
而不是具有 [ 1, 2 ]
的数组。
?test[]=1&test[]=2
也不行。
这里可能有什么问题?
当我这样做时:http://localhost/?test[]=1&test[]=2
,对我来说效果很好。 req.query
包含:
{ test: [ '1', '2' ] }.
其实http://localhost/?test=1&test=2
也生成一样的
{ test: [ '1', '2' ] }
我的结果。我是 运行 Express 4.17.1。所以,如果您有正确的 Express 配置,它会起作用。
另请注意,我以字符串形式获取结果,而您以数字形式获取结果,因此您显然没有对查询参数使用默认的 Express 解析。
您的快速配置中的某些内容必须对查询参数的解析方式有不同的设置。
有了这个urlhttp://example.com/users?test=1&test=2
router.route('/users/?').get((req, res) => {
console.dir(req.query) //=> { test : 1 }
})
returns { test : 1 }
而不是具有 [ 1, 2 ]
的数组。
?test[]=1&test[]=2
也不行。
这里可能有什么问题?
当我这样做时:http://localhost/?test[]=1&test[]=2
,对我来说效果很好。 req.query
包含:
{ test: [ '1', '2' ] }.
其实http://localhost/?test=1&test=2
也生成一样的
{ test: [ '1', '2' ] }
我的结果。我是 运行 Express 4.17.1。所以,如果您有正确的 Express 配置,它会起作用。
另请注意,我以字符串形式获取结果,而您以数字形式获取结果,因此您显然没有对查询参数使用默认的 Express 解析。
您的快速配置中的某些内容必须对查询参数的解析方式有不同的设置。