request.body 在使用 axios 将数据从 React 发布到节点时为空

request.body is empty on posting data from react to node using axios

我正在尝试 post 使用 axios api 调用从反应(前端)到 nodejs 服务器的数据,url 被命中并正确执行,但是发送数据为空

节点代码*

const express = require("express");
const bodyParser = require('body-parser');
const cors = require("cors");
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());


let corsOptions = {
  origin: "*",
  optionsSuccessStatus: 200,
};
app.use(cors(corsOptions));


  app.post("/signin",function(request,response,next){
    console.log(request);
    console.log(request.body);
    response.json({});
})



app.listen(4000, "localhost", function () {
    console.log("App is listening at port 4000");
  });

React 方法

onSignin=function(event){

        let data = new FormData();
        data.append("signinEmail",this.state.signinEmail);

        axios({
            method:"post",
            url:"http://localhost:4000/signin",
            data:data,
            headers:{
                'Content-Type':'multipart/form-data'
            }

        }).then((res)=>{
            console.log(res);
        })
    }

感谢任何帮助。

如果您不需要在/signin API中上传文件,您可以使用'Content-Type':'application/json'并向服务器发送一个JSON对象。

onSignin=function(event){

        // data send to server
        let data = {
             signinEmail : this.state.signinEmail
        };

        axios({
            method:"post",
            url:"http://localhost:4000/signin",
            data:data,
            headers:{
                'Content-Type':'application/json'
            }

        }).then((res)=>{
            console.log(res);
        })
    }