javascript - 对为什么我的 fetch 方法没有发送 JSON 数据感到困惑
问题描述
前端,使用 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;
}
后端,使用快递
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”不是?
解决方案
事实证明,我没有使用名为“body-parser”的东西。
推荐阅读
- redis - Redis 作为 Modbus/TCP 的替代品
- treeview - Vuetify treeview - 选择父级而不选择子级
- python - 识别包含 Python 列表中字符串的数据框列的所有行的最有效方法?
- python - 有人可以帮我在 Django 中遇到属性错误吗?
- javascript - 在文本框中概述用户文本输入
- python - 使用 Python 从 url 下载 HTML 页面
- javascript - 在 JS 包中包含图片
- jenkins - 如何使用 groovy 脚本编辑特定的詹金斯作业?
- ms-access - 如何在未经许可的情况下向用户隐藏数据库后端的路径?
- mysql - 当记录跨越多个表时,在移动输入表单上创建格式良好的记录