VueJS表单数据如何与其他数据一起发送图像文件

问题描述 投票:1回答:1

我想与其他数据一起发送图像文件夹。 (名称和openingHours);

这是我用来将数据提交到后端的vuejs代码

const formData = new FormData();

formData.append("name", this.name);
formData.append("openingHours", this.openingHours);
formData.append("photos", this.selectedFile);

await this.$http.post("spa", formData);

enter image description here

这里是我的控制器代码

var multer = require('multer')
var upload = multer({ dest: 'uploads/' })
router.post('/', upload.array('photos', 10), async (req, res) => {

  console.log(req.file);
  console.log(req.body);


});

这里req.file是未定义的,照片也出现在主体下,而且此openHours不是数组。我在前端传递数组。

enter image description here

这是我在app.js中的身体解析器设置

const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json());

有人可以告诉我我的代码有什么问题吗?

我想将openingHours作为JS数组传递。

UPDATED这是我在该方法中管理日志openHours时得到的结果。enter image description here

node.js vue.js vuejs2 form-data body-parser
1个回答
0
投票

在保存到FormData之前,需要对调用JSON.stringify的数组进行字符串化:

formData.append("openingHours", JSON.stringify(this.openingHours));

而且在后端,您需要调用JSON.parse对其进行解析:

const openingHours = JSON.parse(req.body.openingHours)
© www.soinside.com 2019 - 2024. All rights reserved.