Получить тело запроса GET (NodeJS + ax ios) - PullRequest
0 голосов
/ 13 января 2020

Вот мой запрос:

        axios.get(BASE_URI + '/birds/random', {Stuff: "STUFF"})
        .then(randBird=>{
            const birdData = randBird.data
            const bird = {
                age: birdData.age,
                bio: birdData.profile.bio,
                displayname: birdData.profile.displayname,
                species: birdData.profile.species,
                _id: birdData._id
            }
            this.setState({currentBird:bird})
        })

Вот что происходит на моем роутере (на '/ birds'):

birdRouter.route('/random').get((req, res)=>{
    console.log('req.body = ', req.body)
    User.count().exec((err, num)=>{
        if(err){
            console.log(err)
            return res.send({error: err})
        }
        const random = Math.floor(Math.random() * num)
        User.findOne().skip(random).exec((err, bird)=>{
            if(err){
                console.log(err)
                return res.send({error: err})
            }
            console.log(bird)
            res.send(bird)
        })

    })

Действительно, единственные линии, на которые стоит обратить внимание в обоих фрагментах есть первые и первые два (для первого и второго фрагмента соответственно).

Запрос проходит, но мой console.log показывает это:

req.body = {}

Что сделал Я тут не так делаю?

Ответы [ 2 ]

2 голосов
/ 13 января 2020

Некоторые браузеры и библиотеки не поддерживают HTTP-метод get с телом. Вы можете переключиться в режим POST / PUT и посмотреть, работает ли он должным образом.

1 голос
/ 13 января 2020

Обычно в методе GET мы не передаем данные тела. вместо данных тела вы можете передать строку запроса. а также, если вы используете express сервер, вам нужно установить пакет body-parser для получения данных в теле. пожалуйста, обратите внимание на проблему, опубликованную в топор ios

...