在服务器端访问React路由参数

时间:2019-05-24 13:24:23

标签: javascript node.js regex reactjs express

我用ReactJS和ExpressJS提出了这个问题:因此,基本上,用户使用React&axios在/info路由上上传了一些信息。然后用户从服务器端获取路由参数以重定向到:

axios.post('/info', SomeData)
.then(res => res.data)
.then(data =>{ 
  window.location.replace(`/info/${data.id}`)
})

这是小菜一碟,但是当用户重定向到该页面时,出现了问题,我需要从该页面获取数据。我可以获取路由参数并像这样在客户端执行请求:

componentDidMount(){
    const { match: { params } } = this.props;
    axios.get(`/api/info/${params.id}`)      
}

但是如何在服务器端获取请求?如何表达对“ id”的访问以在数据库中搜索它并查询数据以发送回客户端?喜欢:

app.get('/api/info/:id', async (req,res)=>{
   await db.find({id: req.params.id}, (data) =>{
      res.status(200).send({data})
   })
})

有帮助吗?谢谢!

1 个答案:

答案 0 :(得分:1)

从与GET相同的组件本身中使用您的参数,并将您的服务称为POST

postUserInfo = () => { 
  const userInfo ={};
  axios.post(`/api/info/${params.id}`,userInfo).then(()=>{
      console.log("user info posted");
  })
}

示例:

 <Form onSubmit={this.postUserInfo}> </form>