从 node.js 发送结果以做出反应
Posted
技术标签:
【中文标题】从 node.js 发送结果以做出反应【英文标题】:sending results from node.js to react 【发布时间】:2021-10-24 16:02:42 【问题描述】:所以在我的 listPage
上,我有 2 个文档,我希望能够在其中单击 edit
按钮,然后它会将我带到 editPage
。它现在确实这样做了。但我所做的是通过axios.post
发出请求,以便将文档的id
发送到后端,然后将结果发送到前端,它只会显示一个根据它的id
记录文件。这是我所拥有的:
列表页:
const editById = (id) =>
console.log(id);
axios
.post(`/getDocToEdit`, id: id )
.then(() =>
console.log(id, " worked");
window.location = "/admin/services/:site";
)
.catch((error) =>
// Handle the errors here
console.log(error);
);
;
然后它到达这个后端路由:
app.post('/getDocToEdit', (req, res) =>
var id = req.body.id;
ServicesModel.findOne(_id: id, function(err,result)
console.log(result);
res.status(200).send(result)
);
)
然后我只是想在我的editPage
的屏幕上显示文档,但它不会加载我通过res.status(200).send(result)
发送的结果。我只有一张应该显示记录的表格。我应该再次从前端打一个电话吗?
【问题讨论】:
【参考方案1】:您应该将发布结果保存在您的前端:
const editById = (id) =>
console.log(id);
axios
.post(`/getDocToEdit`, id: id )
.then((RESPONSE) =>
console.log(RESPONSE); // do it and if you have the response, everything
is fine and you can use it as the returned data
console.log(id, " worked");
window.location = "/admin/services/:site";
)
.catch((error) =>
// Handle the errors here
console.log(error);
);
【讨论】:
你在哪里有它?它在 .then((RESPONSE ? 是的,当您在后端使用res.status(200).send(result)
时,您应该在前端获取result
以进行进一步处理。您可以使用await
或.then(response)
进行操作。如果您还有其他问题,请告诉我。
所以我在我的列表服务页面上将 axios 发布到后端,然后我试图从中获取响应,并在编辑服务页面中使用它。所以这样做不会让我在编辑页面中得到结果
要解决这种情况,您有两种选择:1. 使用状态管理,例如 redux 或上下文提供程序,或者 2. 将响应存储在一个变量中并将其传递给所需的组件。
查看这些链接react-redux.js.org/introduction/…。和reactjs.org/docs/context.html 但我建议在另一个问题中提出这个问题,因为它与您在这里的问题完全不同。以上是关于从 node.js 发送结果以做出反应的主要内容,如果未能解决你的问题,请参考以下文章
什么 TypeScript 配置产生最接近 Node.js 14 功能的输出?
无法在 Apolloclient 中发送 authToken 以做出反应
反应 js:axios 向 node.js api 发布请求
如何使用 node.js MySQL 从 MySql DB 获取结果并将它们发送回 API.ai - DialogFlow