【问题标题】:Confused as to why my fetch method isn't sending JSON data对为什么我的 fetch 方法没有发送 JSON 数据感到困惑
【发布时间】:2018-07-09 20:12:02
【问题描述】:

前端,使用 React

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;
}

后端,使用 express

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) 

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

SyntaxError: Unexpected token < in JSON at position 0

为什么它不向我的后端发送数据?我还应该使用 Axios 之类的库来进行后端和前端之间的通信,而不是使用 fetch api 吗?最后,为什么后端有不同的方法,比如“get”和“post”?为什么“post”是唯一允许有 req.body 的方法,而“get”不是?

【问题讨论】:

标签: javascript reactjs express


【解决方案1】:

事实证明,我没有使用名为“body-parser”的东西。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2017-03-20
    • 2013-07-19
    • 1970-01-01
    相关资源
    最近更新 更多