javascript - res.send() 没有发回完整的数据集
问题描述
希望大家能帮我解开这个谜。我为我的 API 创建了一个端点:
apiRouter.get("/username", async (req, res) => {
const { username } = req.body;
try {
const user = await getUserByUsername(username);
res.send({ message: "This is your user", user });
console.log("this is user", user);
} catch (error) {
throw error;
}
});
这是一个 GET 路由,当用户与此 url 路径交互时,它应该以这种方式发回消息和用户对象:
http://localhost:3000/api/users/username
当我通过 Postman 访问端点时,我得到了消息和用户对象。看起来像这样的东西:
{
"message": "This is your user",
"user": {
"customer_id": 5,
"first_name": "Jessica",
"last_name": "Blue",
"email": "baker@space.com",
"username": "jess1",
"password": "1234",
"address_1": "123 pretty lane",
"address_2": "Apt 31",
"city": "Riverside",
"state": "California"
}
}
但是,当我通过前端访问路由时,消息会返回,但user不会。我正在使用以下方法调用服务器:
export async function getUserByUsername(username) {
try {
const { data } = await axios.get("/api/users/username", {
username,
});
console.log(data);
return data;
} catch (error) {
throw error;
}
}
我真的不确定为什么用户没有收到回复。该路线有效,我只是没有得到预期的回应。我花了几个小时试图找到一个没有运气的修复程序。任何帮助将不胜感激。在此处输入图像描述
解决方案
目前,您无法在大多数浏览器中发送带有 get 请求的正文。所以你有两个选择:
将您的后端方法更改为 POST:
apiRouter.post("/username", async (req, res) => {
const { username } = req.body;
.
.
.
}
并像这样使用 axios:
const { data } = await axios.post("/api/users/username", {
username,
});
或者,如果您想坚持使用 get 方法,请接受用户名作为查询或参数:
apiRouter.get("/username/:username", async (req, res) => {
const { username } = req.params;
.
.
.
}
并像这样使用 axios:
const { data } = await axios.get(`/api/users/username/${username}`);
或者
apiRouter.get("/username", async (req, res) => {
const { username } = req.query;
.
.
.
}
并像这样使用 axios:
const { data } = await axios.get(`/api/users/username`, { params: { username } });
推荐阅读
- python - TFF RuntimeError:尝试在不构建函数的情况下捕获 EagerTensor
- swift - 测试运行程序在完成运行测试之前以代码 9 退出
- python - 将单个值附加到存储在 csv 文件中的数据帧
- android - 在 LazyColumns 中滚动 LazyRows 以及粘性行和列?
- python - Asnycpg PostgreSQL 连接问题
- arrays - 如何在 mongoDB 中更新嵌套数组
- r - 将匹配 NA 的 df 的字符行与所有内容进行比较,并根据比较创建新列或 df
- mongodb - 我无法安装 mongodb: E: Unable to locate package mongodb-org
- reactjs - 输入框中的奇怪错误值未显示
- javascript - 过滤数组以返回深层对象