使用React / Redux和Express的数据流

时间:2017-08-15 03:04:30

标签: reactjs express react-redux

我有一个带有Express后端应用程序的React / Redux前端,而且我很新,但我对如何处理数据流有疑问。

所以,在我的前端,我有一个搜索栏。当用户输入搜索词时,我从React发送了一个帖子请求,该请求在我的Express routes.js文件中处理。在这个文件中,我正在使用该搜索术语,我正在Mongo数据库中查找该术语。之后,如果在数据库中找到该术语,我想要做的就是发回一个对象。

我在此应用程序中使用了 axios 来向某个路径发出HTTP请求来提取某些数据,但是在快速方面的app.get(...)范围内,我使用了React端的axios.get(...)用于检索信息。

但是,由于数据在两个方向上流动,这种情况略有不同。最初,从前端到后端,然后从后端到前端。在这种情况下,我使用app.post(...)

现在我的问题是,如何将数据检索到前端?我可以简单地在axios.get(...)上执行app.post(...),还是有其他方法可以做到这一点?

3 个答案:

答案 0 :(得分:0)

如果您从浏览器获取到后端的路由,该路由仅用于响应POST,您可能会收到405错误。实现POST Axios请求和POST Express回复。

答案 1 :(得分:0)

您可以使用GETPOST,但您需要在服务器和客户端保持一致。如果您从客户端执行http GET,则服务器仅在您具有app.get(...)作为服务器路由时才会响应。

就数据流而言,get和post都可以返回数据,只需要在快速路由上指定。

在查看mongo中是否存在密钥的业务逻辑之后执行res.send({'found': true})res.json({'found': false})之类的操作。这将确保数据返回客户端。

答案 2 :(得分:0)

如果我要这样做,我会:

1。)使用Axios get request and pass in as a parameter标识属性,例如相关的_id或关键短语。

2。)使用 mongoDB's query filter搜索参数对数据库中的模式数据进行索引和聚合。我可能会使用.findOne or .find

3。)使用路由器回调传递经过过滤的数据,然后使用dispatch一个将其保存到状态的函数。

这样,您可以设置要搜索的特定字词或关键字,并在整个应用中利用搜索到的数据。