Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

185
Visualizações
How to pass a localstorage value as an argument in axios request

I have a React app and I use Express to handle my db queries.

What I want is to pass my user id stored in localstorage into a post request.

(My app is basically a game where users can gain cards to fight against other players, and to do so, I need to update my db when a user receives a card, which is why I'm trying to do the following). Here's my code:

import React, {useEffect, useState} from 'react';
import Axios from "axios";
import axios from "axios";

const Cards = () => {

const [card, setCard] = useState([]);
const id = localStorage.getItem("id");
console.log(id) // Output is 1 (correct)

useEffect(() => {
    async function fetchData() {
        try {
            // Below, id should refer to localStorage.getItem("id")
            const res = await Axios.post('http://localhost:3001/getRandomCard', {id}) 
            setCard(res.data)
        } catch (err) {
            console.log('error:', err)
        }
    }

    fetchData()
}, []);

return (
    <div>
        <div>
            {card.map(aCard => <div className={"text-center"} key={aCard.name}> {aCard.name}
                <img alt={"Image de " + aCard.name} className={'activator'} src={'http://localhost/lfl/inc/img/players-ico/' + aCard.name} style={{width: '100%'}}/>
            </div>)}
        </div>

    </div>);
};

export default Cards;

And on my app.js:

app.post('/getRandomCard', async function (req, res) {

    const id = req.params.id;

    console.log('userid= ', id) // Output: undefined

    // ...

})

I'm very new to React, so I'm trying basic stuff, and maybe my code is not the better way to do what I'm actually trying to do, if so, every comment is deeply appreciated.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

With the post method, on the second place is object with 'body' of the request. So your data is not in the params, but its in the body.

So you have to use

 const id = req.body.id;

instead of

const id = req.params.id;
about 4 years ago · Juan Pablo Isaza Relatório

0

If you want to receive id using params then you have to tweak your code a little bit

const res = await Axios.post(`http://localhost:3001/getRandomCard/${id}`)

And on the backend receive the code like this,

app.post('/getRandomCard/:id', async function (req, res) {

    const id = req.params.id;
    console.log('userid= ', id)

})
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda