user13353216
user13353216

Reputation:

How to send parameters through axios get method in react?

I have a axios GET method and I need to pass parameters with the get request. I am calling the GET method in Client side (React.js) like this,

    const [Cart] = useState([]);
    const user = {
        userId : session.userId
    };

    console.log(user);
    useEffect((user) => {
        if(session.userId !== null){

            //Axios.get('http://localhost:5000/api/cart/getCart', user) <- I tried both these ways
            Axios({
                method: 'GET',
                url: 'http://localhost:5000/api/cart/getCart',
                headers: {
                    'Content-Type': 'application/json',
                    'Accept': 'application/json'
                },
                data: {},
                params: {
                    "userId" : session.userId
                }
            })
                .then(res => {
                    const cart = res.data;

                    let tempProducts = [];
                    cart.data.forEach(item => {
                        const singleItem = {...item};
                        tempProducts = [...tempProducts, singleItem];
                    });

                    this.setState(() => {
                        return {Cart: tempProducts};
                    });

                })
        }
        console.log(Cart)
    });

But in server side (node.js), it doesn't get the parameter value.

router.get('/getCart', (req, res) => {

    console.log(req.body.userId) //This gives the output as undefined
    User.findOne({_id: req.body.userId}
    ,(err, userInfo) => {

       res.json(userInfo.Cart);

    })
});

I implemented the uncommented axios.get request by referring to this. Can you please help me to find the error? Or can you suggest me any other method to do this? Thanks

Upvotes: 2

Views: 18980

Answers (1)

Akhil Thakur
Akhil Thakur

Reputation: 153

UseEffect :

 axios.get('/api', {
          params: {
            foo: 'bar'
          }
        });

Server :

function get(req, res, next) {

  let param = req.query.foo
   .....
}

Upvotes: 8

Related Questions