所以我正在從react向express發出一個獲取請求,api的url需要引數,但我希望url的最后一點是動態的。我如何將引數從 react 發送到 express 中的 api 網址?下面是代碼
react
const [dynamic, setDynamic] = useState("someevalue")
useEffect(() => {
async function fetchData(){
const response = await fetch("/web"/span>)
const data = await response.json()
console.log(data)
}
fetchData()
}, [dynamic])
express.js
app.get("/web"/span>, async (req, res) => {
const response = await fetch("https://alexa.com/api?Action=urlInfo& Url=")
const data = await response.json()
res.json(data)
})
基本上,我希望將動態狀態值注入到Express中的URL末尾。
類似于
的內容react
const [dynamic, setDynamic] = useState("somevalue"/span>)
async function fetchData() {
const response = await fetch("/web"/span> dynamic)
const data = await response.json()
console.log(data)
}
然后在express中,當API被呼叫時,URL變成了
const response = await fetch("https://alexa.com/api?Action=urlInfo& Url=somevalue")
我怎樣才能實作這個目標?
uj5u.com熱心網友回復:
你在路由處理程式方面定義引數,設定一個符合所需模式的路由。 例如:
app.get("/foo/bar/:myparam"/span>, async (req, res) => {
//...這是你的處理代碼。
})
將匹配/foo/bar/baz,并且req.params.myparam ==="baz"在處理程式里面。
http://expressjs.com/en/guide/routing.html#route-parameters
使用查詢引數是類似的,但是你要檢查req.query物件的值代替,就像:
//客戶端(React代碼)
await fetch("/foo/bar?myparam=baz"/span>)
...
//在你的快遞處理程式中:
req.query.myparam === " baz"
uj5u.com熱心網友回復:
在api呼叫的params中使用動態值。
反應代碼看起來像這樣:
const [dynamic, setDynamic] = useState("somevalue"/span>)
useEffect(() => {
async function fetchData(){
const response = await fetch(`/web/${dynamic}`/span>)
const data = await response.json()
console.log(data)
}
fetchData()
}, [dynamic])
在Express.Js代碼中 在路由處理程式上定義引數,并在fetch api呼叫中使用它
app.get("/web/:value"/span>, async (req, res) => {
const {value} = req.params;
const response = await fetch(`https://alexa.com/api?Action=urlInfo& Url=${value}`)
const data = response.json()
res.json(data)
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/310202.html
標籤:
