如何通过React中的axios get方法发送参数?

我有一个axios GET方法,我需要在get请求中传递参数。我这样在客户端(React.js)中调用GET方法,

    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)
    });

但是在服务器端(node.js),它没有获取参数值。

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

评论
xeos
xeos

UseEffect:

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

服务器:

function get(req, res, next) {

  let param = req.query.foo
   .....
}
点赞
评论