我想与其他数据一起发送图像文件夹。 (名称和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);
这里是我的控制器代码
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不是数组。我在前端传递数组。
这是我在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)