繁体   English   中英

NodeJs 访问 [对象 FormData]

[英]NodeJs Access [object FormData]

我正在尝试使用 Multer 将 Vue.3/Axios 中的多个对象(2 个字符串、1 个日期和 1 个文件)的数组发布到 Nodejs 服务器。 但是在 Nodejs 服务器中,当我 console.log req.files 和 req.body 他们返回

文件 - []

&

正文 - [Object: null prototype] { formData: '[object FormData]' }

如何从该对象 FormData 访问我的数据。

Axios 邮报

async post(images) {
    var formData = new FormData();
    for (let i = 0; i < images.length; i++) {
      let file = Array.from(images[i].file[0]);
      formData.append("file", file);
      formData.append("title", images[i].title);
      formData.append("project", images[i].project);
      formData.append("date", images[i].date);
    }
    var isValid = true;
    if (isValid) {
      console.log(
        await axios
          .post(
            `http://localhost:3080/api/image/post`,
            {
              formData,
            },
            {
              headers: {
                "Content-Type": "multipart/form-data",
              },
            }
          )
          .then((res) => console.log(res))
          .catch((err) => ("Error Occured", err))
      );
    }
  }

其中 images 是一个代理,其中包含一个包含图像对象的数组:

date: "2022-06-10"
file: FileList {0: File, length: 1}
project: "Project Name"
title: "Test"

Multer是这样设置的

const multer  = require('multer')
var storage = multer.diskStorage({
  destination: function (request, file, callback) {
      callback(null, './uploads/');
  },
  filename: function (request, file, callback) {
      callback(null, file.originalname)
  }
});
var upload = multer({ storage: storage });

app.post('/api/image/post', upload.array('file'), function (req, res, next)){
    console.log(req.body)
}

删除对象属性的简写,只使用formData

await axios
  .post(
    `http://localhost:3080/api/image/post`,
     formData,
    {
      headers: {
        "Content-Type": "multipart/form-data",
      },
    })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM