我有一个带有Express后端应用程序的React / Redux前端,而且我很新,但我对如何处理数据流有疑问。
所以,在我的前端,我有一个搜索栏。当用户输入搜索词时,我从React发送了一个帖子请求,该请求在我的Express routes.js文件中处理。在这个文件中,我正在使用该搜索术语,我正在Mongo数据库中查找该术语。之后,如果在数据库中找到该术语,我想要做的就是发回一个对象。
我在此应用程序中使用了 axios 来向某个路径发出HTTP请求来提取某些数据,但是在快速方面的app.get(...)
范围内,我使用了React端的axios.get(...)
用于检索信息。
但是,由于数据在两个方向上流动,这种情况略有不同。最初,从前端到后端,然后从后端到前端。在这种情况下,我使用app.post(...)
。
现在我的问题是,如何将数据检索到前端?我可以简单地在axios.get(...)
上执行app.post(...)
,还是有其他方法可以做到这一点?
答案 0 :(得分:0)
如果您从浏览器获取到后端的路由,该路由仅用于响应POST,您可能会收到405错误。实现POST Axios请求和POST Express回复。
答案 1 :(得分:0)
您可以使用GET
或POST
,但您需要在服务器和客户端保持一致。如果您从客户端执行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一个将其保存到状态的函数。
这样,您可以设置要搜索的特定字词或关键字,并在整个应用中利用搜索到的数据。