Как мне сделать ax ios post-запрос одновременно с телом и данными формы? - PullRequest
0 голосов
/ 08 мая 2020

Я хочу отправить сообщение rquest с помощью ax ios, в котором есть данные тела и данные формы, и я могу получить все, что нужно, чтобы добраться до моего хадлера маршрута:

axios({
    method: 'POST',
    url: `${keys.SERVER_URL}/post/new-post/${isAuthenticated()._id}`,
    formData,
    data: { title, content },
    headers: {
        'Content-Type': 'application/json',
        'Content-Type': 'multipart/form-data',
    },
});

, затем в обработчике маршрута я console.log и ничего не получаю:

app.post("/new-post", (req, res) => {
    console.log(req.body);
    console.log(req.file):
});

1 Ответ

1 голос
/ 08 мая 2020

Нет опции formData для объекта axios() options. Если вы хотите установить formData, вы устанавливаете свойство data в свой formData.

Итак, это показывает, что есть ТОЛЬКО один набор данных, который вы отправляете с помощью POST или PUT. Если вы хотите отправить несколько фрагментов данных, вы должны объединить их в один и тот же набор данных, и вы, очевидно, должны сделать их одним и тем же типом данных (поскольку существует только один основной тип содержимого). Если вам действительно нужно отправить несколько разных типов данных, вам нужно будет отправить тело, состоящее из нескольких частей, с отдельными разделами. Вам, вероятно, понадобится какой-то помощник для создания этого многосоставного тела, поскольку это не то, что ax ios сделает за вас, и это может быть немного сложно.

Если бы вы могли описать, что вы на самом деле пытаемся сделать (какова реальная цель этого запроса), тогда мы могли бы посоветовать, как объединить ваши данные в один более простой тип, чтобы его можно было отправлять более просто.

...