关于为什么我的提取方法未发送JSON数据感到困惑

时间:2018-07-08 23:13:11

标签: javascript reactjs express

前端,使用React

MissingMemberHandling.Error

后端,使用快递

async callAPI() {
  const data = { username: "eric", password: "password" };
  const response = await fetch("/login", {
    method: "post",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(data)
  });

  console.log(response);
  const body = await response.json();

  console.log(body);

  return body;
}

当我到达线路时,

app.post("/login", (req, res) => {
  console.log(req.body);

  let userN = User.findOne(
    { username: req.body.username, password: req.body.password },
    (err, doc) => {
      console.log(doc);

      res.send({
        username: doc.username,
        password: doc.passsword,
        recipeBook: doc.recipeBook
      });
    }
  );
});

在我的快速代码中,我最终得到“未定义”,因此,似乎提取实际上并未将数据发送到后端。在我的前端,我最终遇到此错误,

console.log(req.body) 

为什么它不将数据发送到我的后端?还应该使用Axios之类的库而不是访存api进行后端和前端之间的通信吗?最后,为什么后端有不同的方法,例如“ get”和“ post”?为何只有“ repost.body”才能拥有“ repost.body”,而“ get”却没有?

1 个答案:

答案 0 :(得分:0)

原来,我没有使用所谓的“ body-parser”。

https://github.com/expressjs/body-parser