我正在从包含正文(电子邮件,数字,操作系统)以及上载文件的表单中运行表单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并更新文件名,但是现在实际的文件名是硬编码的或[对象]