[英]Params from axios.get request are undefined on the express back end
[英]axios.get not passing params from client side to the server
作為標題, axios.get 沒有將參數從客戶端傳遞到服務器。 我的服務器當前在 localhost:3001 上,我的客戶端在http://127.0.0.1:5555上。 客戶端不是 React,因此它當前位於http://127.0.0.1:5555/WeatherApp/index.html上(我使用 FiveServer 在 vscode 的 chrome 上打開了 index.html 文件,即“應用程序的入口點” ,它是客戶端托管的端口)
客戶端代碼:
export async function fetchData() {
const { data } =
await axios.get('http://localhost:3001/api', {
params: {q: 'Paris'}
})
return data
}
服務器端代碼:
app.get("/api", async (req, res) => {
console.log(req.query)
const response = await axios.get('http://api.weatherapi.com/v1/current.json', {
params: {
key: process.env.KEY,
q: 'Paris'
}
})
const { data } = response
res.send(data)
})
服務器代碼中的 console.log(req.query) 打印了一個空對象。 我也嘗試了 req.params,但它也打印了一個空對象(雖然我想看到“巴黎”)。 嘗試使用 console.log(req) 來查看“Paris”這個詞可能嵌套在哪里,但找不到。
如果您想隨請求一起發送正文,您會希望發出 POST 請求,因為您不使用它傳遞正文,但您可以使用 URL 中的參數以 GET 形式將信息傳遞給服務器要求
你可以在這里閱讀更多
我正在使用這兩個代碼片段,它確實有效......也許你錯過了一些重要的東西:
服務器.js
const express = require('express')
const app = express()
const port = 3000
app.get('/api', (req, res) => {
console.log(req.query)
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
客戶端.js
const axios = require('axios');
axios.get('http://localhost:3000/api', {
params: {q: 'Paris'}
}).then(({data}) => console.log(data));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.