如何正确返回form.parse之外的数组?

时间:2019-04-12 22:32:49

标签: java node.js express formidable

我正在从包含正文(电子邮件,数字,操作系统)以及上载文件的表单中运行表单POST请求。

我正在使用强大的身体解析器。

当我console.log custInfoArray时,它看起来像:['123','test@email.com','win32'],这正是我所期望的。 我的问题是我无法返回或导出form.parse之外的任何东西并将其传递到form.on。我需要获取表单主体的数组,并更新上传的文件名。

我要这样做吗?有什么建议吗?

我尝试将其包装在函数中并返回,但是没有成功。当我直接将form.parse放置在“ custInfoArray1”所在的位置时,文件名将变为[object object]。

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并更新文件名,但是现在实际的文件名是硬编码的或[对象]

0 个答案:

没有答案