Отдельный запрос от тела в запросе Ax ios - PullRequest
0 голосов
/ 05 мая 2020

В моем коде я пытаюсь сделать запрос PUT к бэкэнду приложений, используя Ax ios. Проблема возникла, когда метод в пользовательской службе, обрабатывающей этот запрос, возвратил нулевой ответ. Вот метод.

async idupdate (request, response)
{
    const {_id} = request.query;
    const {name = "", email = "", MACs = []} = request.body;
    const user = await User.findByIdAndUpdate (_id, {name, email, MACs}, {new: true});
    return response.json (user);
}

Используя console.log (ответ), я обнаружил, что на адрес отправлялось следующее:

body: {
params: { _id: '5eaa0d719bb04972b07920dd' },
name: 'a',
email: 'a@gmail.com',
MACs: [ '123', '456', '789' ] }

Метод, который делает запрос следующим образом.

const response = await api.put
(
    "/useridupdate",
    {
        params:
        {
            _id
        },
        name,
        email,
        MACs
    }
);

Мой вопрос вращается вокруг того факта, что в таком запросе, как этот ...

const response = await api.put
(
    "/useridupdate",
    {
        params:
        {
            _id
        }
    }
);

... можно найти идентификатор в запросе запроса. Поэтому я полагаю, что ошибка заключается в том, как я пишу параметры запроса. На данный момент я просто изменил свой код, так что метод ищет идентификатор в body.params. Я знаю, что могу отправить такой идентификатор в «путь» запроса, но из-за стандартизации я бы не стал этого делать. Однако, если это единственный способ, я так и сделаю.

1 Ответ

0 голосов
/ 05 мая 2020

Метод POST / PUT для ax ios имеет следующий формат: axios.put(url[, data[, config]]), поэтому тело переходит ко второму параметру, а параметры запроса - к третьему параметру.

Например:

axios.put(`api/user`, { name: 'John Doe' }, { params: {
  id: 1
}})
...