【发布时间】:2021-09-14 22:11:39
【问题描述】:
所以我正在从 react 到 express 发出一个获取请求,并且 api url 需要参数,但我希望 url 的最后一位是动态的。我如何将参数从反应中发送到快递中的 api url?这是代码
反应
const [dynamic, setDynamic] = useState("somevalue")
useEffect(() => {
async function fetchData() {
const response = await fetch("/web")
const data = await response.json()
console.log(data)
}
fetchData()
}, [dynamic])
express.js
app.get("/web", async (req, res) => {
const response = await fetch("https://alexa.com/api?Action=urlInfo&Url=")
const data = await response.json()
res.json(data)
})
基本上,我希望将 dynamic 状态值注入到 express 中 URL 的末尾。
类似
反应
const [dynamic, setDynamic] = useState("somevalue")
async function fetchData() {
const response = await fetch("/web" + dynamic)
const data = await response.json()
console.log(data)
}
然后在express调用API时URL变为
const response = await fetch("https://alexa.com/api?Action=urlInfo&Url=somevalue")
我该如何实现这一目标?
【问题讨论】:
-
您可以使用查询参数(如
'/web/foo?key1=value1&key2=value2'),也可以使用url参数(如'/web/foo/:param1/:param2'。对于url参数,express会为您匹配您的请求url到适当的处理程序并将url参数提取为request.params对象中的变量。在查询参数的情况下,无论匹配什么处理程序,它们最终都在url中,它们最终在request.query对象中。您可以以此为起点,进一步了解这些方法中的哪些方法对您的用例有意义。
标签: javascript reactjs express