最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在Node.js后端未正确接收表单数据

运维笔记admin8浏览0评论

在Node.js后端未正确接收表单数据

在Node.js后端未正确接收表单数据

我在react.js前面有一个提交表单,我在那里使用filepond来获取文件,我没有想出发送文件的好方法,就是使用表单数据,发送文件。

fileItems.forEach((item, i) => {
     console.log(typeof item.file)
     const json = JSON.stringify(item.file);
     const blob = new Blob([json], {
           type: 'application/json'
             });
     const data = new FormData();
     data.append("document", blob)
     fileObjects.push({
           name: item.file.name,
           data: data
           });
       });
    this.setState({fileObjects});

当我记录fileObjects时,我得到了这个结果

但是当我在node.js后端记录输出时,数据只是一个空对象。

   result: [ { name: 'Udklip.PNG', data: {} } ] }
 [ [ { name: 'Udklip.PNG', content: {} } ] ]

我已经建立了一个处理程序来将请求发送到我的node.js后端,如下所示:

onSubmitHandler = (e) =>{
  e.preventDefault()
  const contactRequest = {
      email: this.state.email,
      name: this.state.name,
      message: this.state.message,            
      result: this.state.fileObjects
  }


const form = axios.post('/api/form', contactRequest)
console.log(contactRequest)
console.log(form)
}

如何向我的node.js后端发出POST请求,并正确解析文件?

回答如下:

MDN中的此条目显示how to add files objects to FormData

FilePond file item有一个file属性,这是实际文件。

var file = item.file;
var myFormData = new FormData();
myFormData.append('document', file, file.name);

现在您可以将表单数据发送到Axios:

axios({
  method: 'post',
  url: '/api/form',
  data: myFormData
});
发布评论

评论列表(0)

  1. 暂无评论