You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将React中的动态参数传递到Express API请求的URL中

实现步骤

你只需要分别调整React端请求路径和Express端路由匹配规则即可,具体修改如下:

1. React端代码修改

拼接请求路径时建议补充路径分隔符/,同时对动态参数做编码处理,避免参数含特殊字符时路由匹配失败:

const [dynamic, setDynamic] = useState("somevalue")

useEffect(() => {
  async function fetchData() { 
      // 对动态参数编码后拼接在请求路径后
      const response = await fetch(`/web/${encodeURIComponent(dynamic)}`)
      const data = await response.json()
      console.log(data)
  }
  fetchData()
}, [dynamic])

2. Express端代码修改

首先给路由配置动态参数占位符,接收前端传过来的动态值,再拼接至第三方接口的请求参数中:

// :dynamicParam 为动态参数占位符,可通过req.params获取对应值
app.get("/web/:dynamicParam", async (req, res) => {
    try {
      // 拿到前端传的动态值,解码后拼接至第三方请求地址
      const targetUrl = decodeURIComponent(req.params.dynamicParam)
      const response = await fetch(`https://alexa.com/api?Action=urlInfo&Url=${encodeURIComponent(targetUrl)}`)
      const data = await response.json()
      res.json(data)
    } catch (err) {
      // 增加错误处理,避免接口无响应
      res.status(500).json({error: '请求失败'})
    }
})
注意事项
  • 前后端都对参数做编解码是为了兼容动态值包含中文、斜杠、特殊符号等场景,避免请求异常
  • 如果你的dynamic值确定不会出现特殊字符,可以省略编解码步骤,直接拼接即可

内容的提问来源于stack exchange,提问作者devAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:36:02