我正在使用Express.js
编写一个Web应用程序。在请求正文中发送数据时,任何带数字键的数组或对象都会自动解析如下:
{object1: {23: "abc", 45: "def"}, array1: ["a", "b"]}
解析成:
{"object1[23]": "abc", "object1[45]": "def", "array1[0]": "a", "array1[1]": "b"}
这真令人讨厌,因为当我尝试检索密钥object1
或array1
时,我得到错误密钥不存在而我必须执行object1[23]
。
答案 0 :(得分:0)
有两件事可能导致此问题-
解决任何这些问题 首先在您的app.js(应用被初始化的文件)中要求“ qs”
const qs = require('qs');
然后进行使用调用(app.use()) 设置限制(如果在使用调用后编写,将不起作用)
app.set('query parser', function (str) {
//to allow to receive objects with depths upto 10
return qs.parse(str, { depth: 10 });
// return qs.parse(str, {arrayLimit:1000}); to allow arrays of size 1000
});