Как сделать как req.files, так и req.body доступными в nodejs, когда api отправляется с помощью axios - PullRequest
3 голосов
/ 13 июля 2020

Я использую пакет Ax ios npm в моем приложении Node.js, которое представляет собой встроенную архитектуру микросервисов. API-шлюз использует Ax ios для вызова других служб.

Согласно документации ax ios, для метода POST формат запроса такой: axios # post (url [, data [, config]] ). означает только один аргумент.

Кто-нибудь может сказать мне, как я могу отправить данные req.body и req.files отдельно на Ax ios?

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Объедините свои данные как объект и передайте этот объект в запрос ax ios как одну полезную нагрузку.

С другой стороны API вы можете получить доступ к объекту и выполнить поскольку вы wi sh.

var payload = { property1: 'values', property2: 'values2' }

теперь вы передаете полезную нагрузку около

0 голосов
/ 14 июля 2020

Согласно ответу в сообществе Ax ios на знакомый вопрос, этого можно достичь с помощью npm пакета form-data , который имитирует WebAPI FormData на стороне узла.

Это позволит вам отправлять файлы и поля формы в API и получать их в виде данных из нескольких частей.

const axios = require('axios');
const FormData = require('form-data');

const form = new FormData();
// Second argument  can take Buffer or Stream (lazily read during the request) too.
// Third argument is filename if you want to simulate a file upload. Otherwise omit.
form.append('field', 'a,b,c', 'blah.csv');

axios.post('http://example.org/endpoint', form, {
  headers: form.getHeaders(),
})
.then(result => {
  // Handle result…
  console.log(result.data);
});
...