最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何通过axios get方法在react中发送参数?

IT培训 admin 10浏览 0评论

如何通过axios get方法在react中发送参数?

我有一个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);

    })
});

我通过参考this实现了未注释的axios.get请求。您能帮我找到错误吗?还是可以建议我其他方法来做到这一点?谢谢

回答如下:

UseEffect:

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

服务器:

function get(req, res, next) {

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

如何通过axios get方法在react中发送参数?

我有一个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);

    })
});

我通过参考this实现了未注释的axios.get请求。您能帮我找到错误吗?还是可以建议我其他方法来做到这一点?谢谢

回答如下:

UseEffect:

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

服务器:

function get(req, res, next) {

  let param = req.query.foo
   .....
}
发布评论

评论列表 (0)

  1. 暂无评论