Как правильно вернуть массив за пределами form.parse? - PullRequest
0 голосов
/ 13 апреля 2019

Я выполняю запрос POST формы из формы, содержащей тело (электронная почта, номер, операционная система), а также загруженный файл.

Я использую грозный и body parser.

Когда я console.log custInfoArray, он выглядит следующим образом: ['123', 'test@email.com', 'win32'], что я и ожидаю. Моя проблема в том, что я не могу вернуть или экспортировать что-либо за пределами form.parse и передать его в form.on. Мне нужно взять массив формы тела и обновить загруженное имя файла.

Я пойду об этом, верно? Любой совет?

Я пытался обернуть его в функцию и вернуть, но безуспешно. Когда я непосредственно помещаю form.parse, где у меня есть «custInfoArray1», имя файла становится [объект объекта].

app.post('/upload', function (req, res){
   var form = new formidable.IncomingForm();
   form.parse(req);

   /* Getting the req.body Info (Tracking Number, Email, OS) */
   form.parse(req, function(err, fields, files) 
      {
        var custTrackingNumber1 = fields.trackingNumber;
        var custEmail1 = fields.email;
        var custOperatingSystem1 = fields.operatingSystem;
        var custInfoArray1 = [custTrackingNumber1, custEmail1, 
        custOperatingSystem1];
        console.log(custInfoArray1);
        return custInfoArray1;
      }
     );

form.on('fileBegin', function (name, file){
file.path = __dirname + '/uploads/'+ custInfoArray1 +'.txt' ;
});

form.on('file', function (name, file){
    console.log('Uploaded ' + file.name);
});
res.redirect('/');

}); `

Ожидаемый результат: Чтобы иметь возможность правильно вводить данные form.parse в form.on и обновлять имя файла, но сейчас фактическое имя файла жестко запрограммировано или [объектный объект]

...