Como el título, axios.get no pasa parámetros del lado del cliente al servidor. Mi servidor está actualmente en localhost:3001, y mi lado del cliente está en http://127.0.0.1:5555 . El lado del cliente no es React, por lo que actualmente está en http://127.0.0.1:5555/WeatherApp/index.html (abrí el archivo index.html, el "punto de entrada de la aplicación", en Chrome desde vscode usando FiveServer , y es el puerto en el que se aloja el cliente)
Código del lado del cliente:
export async function fetchData() { const { data } = await axios.get('http://localhost:3001/api', { params: {q: 'Paris'} }) return data }Código del lado del servidor:
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) })El archivo console.log(req.query) en el código del servidor imprimió un objeto vacío. También probé req.params, pero también imprimió un objeto vacío (mientras quiero ver "París"). Intenté console.log (req) para ver dónde podría estar anidada la palabra "París", pero no se encuentra en ninguna parte.
Estoy usando estos dos fragmentos de código y realmente funciona... Tal vez te estés perdiendo algo esencial:
servidor.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}`) })cliente.js
const axios = require('axios'); axios.get('http://localhost:3000/api', { params: {q: 'Paris'} }).then(({data}) => console.log(data));