Node.js 上传文件Api请求在postman中有效,但在nodejs和react MERN中无效

Node.js 上传文件Api请求在postman中有效,但在nodejs和react MERN中无效,node.js,reactjs,mongodb,mongoose,axios,Node.js,Reactjs,Mongodb,Mongoose,Axios,我正在做文件上传和媒体API,在邮递员的作品可以,但在代码不是 反应代码: campaignChangedHandler = (event) => { this.setState( { campaignFile: document.getElementById('campaignFile').files[0] }) }; onSubmit = async(e) => { let formData = new For

我正在做文件上传和媒体API,在邮递员的作品可以,但在代码不是

反应代码:

campaignChangedHandler = (event) => {
   this.setState(
        {
            campaignFile: document.getElementById('campaignFile').files[0]
        })
};

onSubmit = async(e) => {
   let formData = new FormData();
    formData.append('campaignFile', this.state.campaignFile);

     const headers = {
        'Authorization': `Bearer ${token}`
     };

      await axios.post('http://localhost:3001/upload/', {formData}, {headers}).then(resp => {
         console.log(resp)
      })
};


render() {
  return (
    <form onSubmit={this.onSubmit}>
        <input value={this.state.data} error={errors.data}
            onChange={this.campaignChangedHandler}
            name={"campaignFile"}
            id="campaignFile"
            type="file"/>
    </form>
  )
}
我总是在Nodejs控制台中未定义,我尝试了多方、multer、busboy,但我得到了相同的结果,但是在postman中我得到了以下结果:

试试这个:

constructor(props) {
    super(props);
      this.state = {
        campaignFile: null
      }

  }



 onChangeHandler=event=>{
    this.setState({
      campaignFile: event.target.files[0],
    })
  }



 onSubmit = async(e) => {
   let formData = new FormData();
   formData.append('campaignFile', this.state.selectedFile);

     const headers = {
        'Content-Type': 'multipart/form-data',
        'Authorization': `Bearer ${token}`
     };

      await axios.post('http://localhost:3001/upload/',formData,headers).then(resp => {
         console.log(resp)
      })
};


render() {
  return (
    <form onSubmit={this.onSubmit}>
        <input type="file" name="campaignFile" onChange={this.onChangeHandler}/>
    </form>
  )
}
构造函数(道具){
超级(道具);
此.state={
活动文件:null
}
}
onChangeHandler=事件=>{
这是我的国家({
活动文件:event.target.files[0],
})
}
onSubmit=async(e)=>{
设formData=new formData();
formData.append('activityfile',this.state.selectedFile);
常量头={
“内容类型”:“多部分/表单数据”,
'Authorization':'Bearer${token}`
};
等待axios.posthttp://localhost:3001/upload/,formData,headers)。然后(resp=>{
控制台日志(resp)
})
};
render(){
返回(
)
}
与其“试试这个”,不如试着解释一下你实际上改变了什么部分,以及为什么它很重要。没有解释的简单代码块对可能有相同问题的未来读者来说(单独)不是真正有用的。如果在这里回答的人不能“解释它是如何工作的”,它们也会有从另一个现有答案复制的代码的独特“气味”。好的答案解释了原因。
constructor(props) {
    super(props);
      this.state = {
        campaignFile: null
      }

  }



 onChangeHandler=event=>{
    this.setState({
      campaignFile: event.target.files[0],
    })
  }



 onSubmit = async(e) => {
   let formData = new FormData();
   formData.append('campaignFile', this.state.selectedFile);

     const headers = {
        'Content-Type': 'multipart/form-data',
        'Authorization': `Bearer ${token}`
     };

      await axios.post('http://localhost:3001/upload/',formData,headers).then(resp => {
         console.log(resp)
      })
};


render() {
  return (
    <form onSubmit={this.onSubmit}>
        <input type="file" name="campaignFile" onChange={this.onChangeHandler}/>
    </form>
  )
}