如何解码用x-www-form-urlencoded编码的Javascript对象数组?

时间:2016-03-31 16:19:56

标签: node.js express url-encoding

我使用POST请求发送以下数组:

let bookings = [{
  owner       : clientId,
  businessId  : businessId,
  service     : serviceId,
  startDate   : new Date()
}, {
  owner       : clientId,
  businessId  : businessId,
  service     : serviceId,
  startDate   : new Date()
}];

在服务器上,我有以下设置:

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

并获取以下req.body内容:

0[owner]=56fd4dcf8b98ce1c3d87e3ad, 0[businessId]=56fd4dcf8b98ce1c3d87e3ac, 0[service]=56fd4dcf8b98ce1c3d87e3ab, 0[startDate]=2016-03-31T16:18:23.220Z, 1[owner]=56fd4dcf8b98ce1c3d87e3ad, 1[businessId]=56fd4dcf8b98ce1c3d87e3ac, 1[service]=56fd4dcf8b98ce1c3d87e3ab, 1[startDate]=2016-03-31T16:18:23.220Z

如何将此解码回JavaScript对象数组?

1 个答案:

答案 0 :(得分:4)

通过body-parser使用urlencoded()功能。

app.use(bodyParser.urlencoded({extended: true}));

  

<强>扩展

     

扩展选项允许选择使用查询字符串库(假设时)或qs库(当为真时)解析URL编码数据。 “扩展”语法允许将富对象和数组编码为URL编码格式,从而允许使用URL编码的类似JSON的体验。有关详细信息,请参阅qs库。

     

默认为true,但不推荐使用默认值。请研究qs和querystring之间的区别,并选择合适的设置。