Всякий раз, когда я отправляю форму с информацией, она возвращается как неопределенная. Я разместил код ниже. Если я включу (enctype="multipart/form-data") в свою форму, я ничего не получу для тела (req.body). Однако, если я не включу его, я получаю тело, но обработка файла не работает, и страница просто продолжает загружаться.
app.post('/processupload', function(req, res) {
var date = new Date();
titles.push(req.body.pTitle);
descriptions.push(req.body.postDescription);
dates.push(date.toString());
file_names.push(req.body.fUpload);
console.log(req);
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files)
{
if(err) return res.redirect(303, '/error');
});
form.on('end', function(fields, files)
{
var temp_path = this.openedFiles[0].path;
var file_name = this.openedFiles[0].name;
var new_location = __dirname + '/public/images/';
fs.copy(temp_path, new_location + file_name);
res.redirect(303, 'home');
});
});
<form action="/processupload" enctype="multipart/form-data" method="POST" id="uploadForm" name="postForm">
<p align="center" id="pUploadForm" name="pPostForm"><label for="photoTitle">Photo Title: </label>
<input type="text" id="photoTitle" name="pTitle"><br>
<br><input type="file" id="fileUpload" name="fUpload"><br>
<br><label for="photoCaption">Photo Caption: </label><br>
<textarea rows="10" cols="50" id="photoCaption" name="postDescription"></textarea><br><br>
</p>
</form>
fields
в обратном вызовеform.parse
. Вы не можете получить к нему доступ черезreq.body
, так как это не объект запроса в стилеexpress
. - person Soubhik Mondal   schedule 30.04.2016