Я столкнулся с тем, что, по моему мнению, является общей проблемой при использовании типов форм enctype="multipart/form-data"
с помощью ExpressJS. Без промежуточного программного обеспечения req.body
(или bodyParser) не обрабатывает этот тип формы, и в результате я посылаю null
значения для моих полей по запросам POST
. В моей форме есть раздел для загрузки файлов, поэтому я использую multipart
, и я использую модули multer
и multer-s3
для обработки загрузки изображений в ведро s3, но не знаю, как использовать multer
или какой-либо другой модуль, чтобы помочь мне сохраните значения полей в моей базе данных Mysql (Sequelize ORM). Может ли кто-нибудь дать указания относительно того, является ли multer
правильным модулем, который будет использоваться для загрузки этого типа формы, и укажите мне документацию, где я могу поменять req.body
с помощью определенного метода?ExpressJS - форма с загрузкой файла Многостраничный вызов Req.body Issue
Что моя форма выглядит
<form action="/app/post/create" method="post" enctype="multipart/form-data">
<label for="discovery">Discovery:</label>
<textarea id="discovery-text-field" name="discovery"></textarea>
</br>
<label for="report-link">Link to Report:</label>
<input type="textarea" name="reportLink">
<br />
<label for="file-attachment">File Attachment:</label>
<input type="file" id="file-input" name="fileUpload[]" multiple>
</form>
Routing:
appRoutes.route('app/post/create')
.post(function(req, res){
models.Post.create({
discovery: req.body.discovery,
reportLink: req.body.reportLink,
userId: req.user.userId
}).then(function(){
req.flash('info', 'Post was successfully created.');
res.redirect('/app');
});
});