В Nodejs я разработал небольшое клиентское приложение, которое отправляет несколько «multipart / form-data» в мое серверное приложение, используя POST-запросы.Каждая отправляемая форма состоит из файла (загруженного с клиентского жесткого диска) и строковой информации.В основном у меня следующая ситуация:
Форма 1: (Файл 1, строка 1) Форма 2: (Файл 2, строка 2) Форма 3: (Файл 3, строка 3) И т. Д.
Для выполнения запросов POST я использую библиотеку «form-data» (https://www.npmjs.com/package/form-data).Проблема, с которой я сталкиваюсь, заключается в том, что все запросы POST отправляются после завершения выполнения моего клиентского приложения, но я хотел бы иметь возможность отправлять каждый запрос POST отдельно.
Вот частькода, который я использую:
function FormSubmit(item)
{
var FileStream = fs.createReadStream(item.path);
// Create an "Upload" Form and set all form parameters.
let form = new FormData();
form.append('Text1', 'test');
form.append('file', FileStream);
// Form Submit.
form.submit('http://localhost:5000/upload', function(err, res) {
if (err) {
console.log(err);
}
if (res!= undefined)
res.resume();
else
console.log('Res undefined: ', res);
});
}
Я вызываю функцию «FormSubmit» несколько раз, и я ожидал получать запрос POST на приложение сервера каждый раз после выполнения команды «form.submit », но на самом деле я получаю запросы POST все вместе после завершения всего приложения.В частности, Сервер получает запросы по команде «self.emit (« connect »);» внутри функции «afterConnect» в файле «net.js» в основном модуле.
Похоже, что онне имеет ничего общего с таймингами, потому что даже если я поставлю точку останова и подожду несколько минут после первого выполнения функции "FormSubmit", я ничего не получу в приложении сервера.Возможно, это не то, что связано с библиотекой «form-data», потому что я получаю то же поведение, используя «запрос» и т. Д. Я думаю, это что-то, связанное с самими NodeJ или с тем, как я написал клиентское приложение.
Я новичок в NodeJ, поэтому любая помощь / совет будут оценены.Спасибо.