今天测试的时候发现,我使用node的request的模块向express服务器发送json数据时,express接受的数据格式并不正确
我传的数据
{
'commodityList': [
{
'commodityName': '飞机杯',
'commodityId': '2',
'commodityPrice': 128,
'commodityNumber': 2
},
{
'commodityName': '拖鞋',
'commodityId': '1',
'commodityPrice': 59,
'commodityNumber': 10
}
],
'purchasePrice': 846,
'userId': '1'
}
express 接收的数据
{ 'commodityList[0][commodityName]': '飞机杯',
'commodityList[0][commodityId]': '2',
'commodityList[0][commodityPrice]': '128',
'commodityList[0][commodityNumber]': '2',
'commodityList[1][commodityName]': '拖鞋',
'commodityList[1][commodityId]': '1',
'commodityList[1][commodityPrice]': '59',
'commodityList[1][commodityNumber]': '10',
purchasePrice: '846',
userId: '1'
}
这样子数据取不出来了呢
相关代码
客户端request发送数据
var request = require('request');
var options = {
url: 'http://localhost:3000/commodityManage/purchaseAdd',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
form: {
'commodityList': [
{
'commodityName': '飞机杯',
'commodityId': '2',
'commodityPrice': 128,
'commodityNumber': 2
},
{
'commodityName': '拖鞋',
'commodityId': '1',
'commodityPrice': 59,
'commodityNumber': 10
}
],
'purchasePrice': 846,
'userId': '1'
}
};
console.log(options.form.commodityList);
console.log(options.form.commodityList.length);
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
var info = JSON.parse(body);
console.log("info:", info);
}
}
request.post(options, callback);
服务端接收数据
router.post('/purchaseAdd', function(req, res, next) {
var uploadData = req.body;
console.log(uploadData);
}
求解答
你可能需要一个bodypraser来帮助解析你post上去的json