Javascript React AXIOS post-简单测试不工作(快速)

Javascript React AXIOS post-简单测试不工作(快速),javascript,json,reactjs,express,axios,Javascript,Json,Reactjs,Express,Axios,我有一个内置的react前端,我使用一个简单的样板来连接express和react。似乎有太多不同的方法来设置一个简单的RESTful api,我都迷路了。我正在尝试做一些非常简单的后端到前端的通信 我让express执行一个get请求,将其推到后面,并使用Axios获取数据: AccountsDB只是内部测试的基本JSON数据 [ { "id": "5b68d6f13e2c773581221620", "index": 0, "firstName": "Josefa

我有一个内置的react前端,我使用一个简单的样板来连接express和react。似乎有太多不同的方法来设置一个简单的RESTful api,我都迷路了。我正在尝试做一些非常简单的后端到前端的通信

我让express执行一个get请求,将其推到后面,并使用Axios获取数据:

AccountsDB只是内部测试的基本JSON数据

[
  {
    "id": "5b68d6f13e2c773581221620",
    "index": 0,
    "firstName": "Josefa",
    "lastName": "Lynch",
    "pin" : 1234
  }
]
在我的express index.js中,我有一个简单的GET

app.get('/api/getAccounts', (req, res) => res.json(AccountsDB));
在我的React中,我使用axois获取数据:

componentDidMount () {
    axios.get ('/api/getAccounts')
    .then (res => this.setState({ Accounts : res.data}));
}
完全有效。我在主组件中显示帐户。 在组件内部,我还有一个论坛可以“创建”一个新帐户,并将其推送到AccountsDB文件中进行内部测试(我正在学习后端,之后将连接mongoDB)

我的POST方法逻辑(可在此处找到):

我把它贴在一个按钮上发布数据。我打开PostMan,导航到“/api/putAccounts”,什么也看不到

我不明白如何准确地将数据收集到express中。我愚蠢的尝试:

app.post('/api/putAccounts', (req,res) => {
    // res.send("sent!") // post man see's this?
    // var account = req.account;
    // res.send(req.firstName);
});
更详细地阐述…

React应用程序已打开->本地主机:3000

Express应用程序已打开->本地主机:8080

使用网页包和代理:

 devServer: {
    port: 3000,
    open: true,
    proxy: {
      '/api': 'http://localhost:8080'
    }
在“”下(在我的react应用程序中),我有一个按钮,上面有
axios.post
,它将firstName:Fred和lastName:Flintstone发送到
'/api/putAccounts'

我正试图让我的express服务器捕获帖子,以便我可以对其进行操作并将其添加到数据库中

在我进入数据库之前,我要确保我理解POST是如何工作的(我理解get)。所以我试图获取数据,并将其显示在某处,这就是我在postman中查看数据的意思


也许我在这件事上完全错了,所以为什么会感到困惑

在“邮递员”中,在发出post请求时,您需要在req正文中发送firstName和lastName,如下所示

  {
      "firstName": "Hi",
      "lName": "Hello"
  }
因此,您可以执行req.body.firstName以获得其下面的值

  app.post('/api/putAccounts', (req,res) => {
       const fName = req.body.firstName;
       const lName = req.body.lastName;
       res.json({"fName":fName, "lastName": lName});
  });

您需要在ServerSide中使用req.body.firstName和req.body.lastName访问它。这似乎对我不起作用,我只是在postman中有一个空对象“{}”。当我按下我创建的“POST”按钮时,我的控制台会显示{data:{…},status:200,statusText:“OK”,标题:{…},配置:{…},}。为什么要在POST请求中发送空对象。这没有道理。您需要了解post请求的目的您希望我们做什么?首先,确保您的后端工作正常。当你试着与邮递员打交道时,你是否设置了一个
body
?@RobertOchinski,你的后端和前端实际上是两个独立的东西。您可以通过React应用程序从前端发送数据。这很好,但是人们通常在不编写任何前端代码的情况下测试后端。邮递员用于测试,无需前端。因此,当使用Postman进行测试时,您需要自己为post请求提供数据。首先编写后端,使用Postman进行测试,然后编写前端代码,然后从前端进行测试。
  app.post('/api/putAccounts', (req,res) => {
       const fName = req.body.firstName;
       const lName = req.body.lastName;
       res.json({"fName":fName, "lastName": lName});
  });