在查询字符串中传递对象数组 node.js

Pass array of objects in query string node.js

如果我想让 Node.js 查询解析器解析一个数组,我可以发送这个:

'?or=foo&or=bar' // gets me { or: ['foo', 'bar'] }

如果我想要一个对象,我可以这样做:

'?or[foo]=bar' // gets me { or: {foo: 'bar'}}

但是如何获取对象数组?我想要这个输出:

{ or: [{foo: 'bar'}, {bar: 'baz'}]}

有了qs模块,如果你使用这种格式,你可以得到你要找的对象:

or[0][foo]=bar&or[1][bar]=baz

您可以使用选项 allowDots。

const stringParams = qs.stringify(params, {allowDots:true});
// myArray[0].name=MeWhit
qs.parse(stringParams , {allowDots: true});
// [{ name: MeWhit}]