Как перенаправить данные формы с клиента на какой-нибудь микросервис через Node.js? - PullRequest
0 голосов
/ 13 декабря 2018

Я создал промежуточный бэкэнд для Node.js для общения с несколькими микросервисами, от которых зависит мое приложение.Пока все хорошо.Проблема, которую я не могу решить, связана с обработкой файлов.Мой клиент отправляет файлы на слой Node в форме Formdata, и я хочу перенаправить те же данные формы в какой-то конкретный микросервис, который также ожидает файл в форме данных формы.Я использую промежуточное программное обеспечение express-fileupload для извлечения файла из объекта req, но оно дает мне данные файла со следующим свойством:

req.files.file = {
  data:Buffer(47643) [37, 80, 68, …]
  encoding:"7bit"
  md5:() => …
  mimetype: "application/pdf"
  mv: function (filePath, callback) { … }
  name:"somefile.pdf"
  truncated:false
}

Каксоздать те же данные формы, которые клиент отправил из этого объекта?

1 Ответ

0 голосов
/ 13 декабря 2018

Если я правильно понимаю, вы хотите отправить этот файловый объект определенному API после того, как клиент отправит запрос в ваши микросервисы, и сервер получит это.данные вашего файла доступны с помощью объекта req во всех промежуточных программах Express.

вы можете легко осуществлять маршрутизацию между промежуточными программами или следующей маршрутизацией благодаря методу next express.

app.post('/upload', function(req, res, next) {
  console.log(req.files.foo); // the uploaded file object
  if (/*go to next middleware*/)
     next();
  else if (/*go to next route*/)
     next('route');
}, function (req, res) {
  // [next middleware]
  // req.files.foo is accessible
});

// specific api should stand exactly after receiver api
app.post('/anyRoute', function(req, res) {
  // [next route]
  console.log(req.files.foo); // object file is already accessible
});

, если выЧтобы сделать запрос с сервера, вы можете использовать модуль axios .

...