提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
vue的请求携带由多个对象组成的数组给后端,node解析数据
提示:以下是本篇文章正文内容,下面案例可供参考
一、问题场景
系统需要实现批量导入功能时,从excel中获取了数据,单个记录的类型就是个对象,js从excel获取的数据是有多个对象组成的数组,直接发送到后端会被转成JSON字符串,后端无法读取。
二、解决方法
前端使用qs.stringify()将对象数组序列化,后端用qs.parse(req.body)解析数据
代码如下(示例):
import qs as qs
this.$axios({
url: "http://localhost:3000/batchincome",
method: 'post',
//对象数组经过qs.stringify序列化发送到后端,后端再用qs.parse()解析成对象的形式读取数据
data: qs.stringify(results, {arrayFormat: 'brackets'}),
headers: {
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
})
node后端获取数据
var samples = qs.parse(req.body);
var arr = Object.keys(samples);
var length = arr.length;
var Samples =[]
for(i=0;i<length;i++){
var sample = samples[i];
Samples[i] = sample;
}