Как проанализировать многочастный запрос и затем прокси его
У меня есть сервер 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
})
Какой подход лучше и как я могу улучшить его, чтобы обеспечить решение задачи? Заранее спасибо ребята