node.js - VueJS表单数据如何与其他数据一起发送图像文件
问题描述
我想将图像文件夹与其他数据一起发送。(名称和营业时间);
这是我用来向后端提交数据的 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);
这是我的控制器代码
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 是未定义的,照片也位于 body 之下,而且这个 openingHours 不是一个数组。我在前端传递和排列。
这是我在 app.js 中的正文解析器设置
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json());
谁能告诉我我的代码有什么问题?
我想将 openingHours 作为 JS 数组传递。
解决方案
在保存到 FormData 之前,您需要对调用 JSON.stringify 的数组进行字符串化:
formData.append("openingHours", JSON.stringify(this.openingHours));
在后端,您需要调用 JSON.parse 来解析它:
const openingHours = JSON.parse(req.body.openingHours)
推荐阅读
- amazon-web-services - 在 Jenkins 声明式管道中执行 aws s3 cp 时命令以退出代码 1 终止
- python - 使用pyserial读取串口十六进制字符串值时,无法得到正确的响应答案
- reactjs - React TypeScript - 永远不应该导出状态?
- button - 如何让两个舵机一个接一个地工作?并停止颤抖?
- javascript - Util 函数将多个 Promise 函数与最后的非 Promise 函数链接起来
- php - PHP - 计算两个日期之间的周数
- r - 将图 ggarrange 与不同的 x 轴时间范围对齐
- python - 如何将 RTMP 流转换为 RTSP 流
- python - 如何替换数据框中的索引
- r - 如何解决ROC曲线倒置、AUC小、cutoff这些问题?