私は情報をフォームに提出すると、それは未定義として返されます。私は以下のコードを掲載しました。私のフォームに(enctype = "multipart/form-data")を含めると、本体(req.body)には何も送られません。しかし、私はそれを含むことはありませんが、私はボディを受け取るが、ファイルの処理が動作しないと、ページが読み込みを維持します。未定義ではないフォームから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>
あなたは 'form.parse'コールバックで' fields'をオブジェクトを経由して、フォーム本体にアクセスする必要があります。これは '' express''(http://expressjs.com/)スタイル要求オブジェクトではないので、 'req.body'を介してアクセスすることはできません。 –
@BlazeSahlzenありがとうございました! – unReaL