Nodejs:url.parse查询中的数组问题

时间:2011-12-09 16:08:16

标签: node.js query-string

http://domain.com/action?params[]=1&params[]=2&params[]=3

返回:

query: { 'params[]': [ '1', '2', '3' ] }

params[]作为名称而不是params

在PHP之后,它有点意外。

jQuery序列化正在参数btw上添加[]

你们是不是为此写了一个帮手,或者我只是做错了?

2 个答案:

答案 0 :(得分:3)

这对我来说似乎是预期的行为;如果查询字符串解析器已删除部分名称,我会更感到惊讶。也就是说,该模块正在完成我对解析器的期望,解析器只需将名称/值对按“&”拆分,名称/值按“=”拆分(和unescapes特殊字符)。 / p>

var qs = require('querystring');

qs.parse('params=1&params=2&params=3'); // Name should be "params"
// => { 'params': ['1', '2', '3'] }

qs.parse('params[]=1&params[]=2&params[]=3'); // Name should be "params[]"
// => { 'params[]': ['1', '2', '3'] }

答案 1 :(得分:2)

此模块根据需要进行解析:

https://github.com/visionmedia/node-querystring

如果这不起作用,还有另一个复杂数组:

https://github.com/jazzychad/querystring.node.js

两者都在这里找到: https://github.com/joyent/node/wiki/modules