Как проанализировать многочастный запрос и затем прокси его

У меня есть сервер Express.js, который имеет конечную точку, ожидающую многопользовательские запросы / запросы данных формы от нашего мобильного клиента. Данные формы состоят из файла PDF и двух текстовых полей. Я хотел бы проанализировать текстовые поля, проверить их и, если проверка прошла успешно, затем передать весь запрос другому бэкэнду. Я уже узнал, что, к сожалению, поток запросов может быть использован только один раз.

Я использовал multiparty и получил все необходимые поля, но поток уже занят и не может быть передан через прокси.

let form = new multiparty.Form();

form.parse(req, (err, fields, files) => {
  if (err) return err;
    return [fields, files];
});

Затем я попробовал другой подход - сохранить поток как необработанные данные и затем прокси-сервер. Он успешно проксирован, но я не могу найти библиотеку для анализа необработанных данных.

let HttpProxy = require('http-proxy'),
    proxy = new HttpProxy(),
    streamify = require('stream-array');

let requestData = [];

req.on('data', (chunk) => {
  requestData.push(chunk);
})

req.rawBody = requestData;

proxy.web(req, res, {
  pathRewrite: {
    "^/validate": ""
  },
  target: 'http://some.other.backend/multipart',
  buffer: streamify(req.rawBody),
  logLevel: 'debug',
  changeOrigin: true,
  secure: false
})

Какой подход лучше и как я могу улучшить его, чтобы обеспечить решение задачи? Заранее спасибо ребята

0 ответов

Другие вопросы по тегам