Je suis confronté à ce que je crois être un problème commun avec l'utilisation de types de formulaire enctype="multipart/form-data"
avec ExpressJS. Sans middleware, req.body
(ou bodyParser) ne gère pas ce type de formulaire et par conséquent j'envoie des valeurs null
pour mes champs sur POST
demandes. Mon formulaire a une section de téléchargement de fichiers, c'est pourquoi j'utilise multipart
et j'utilise les modules multer
et multer-s3
pour gérer les téléchargements d'images vers un seau s3, mais je ne sais pas comment utiliser multer
ou un autre module pour m'aider stocker les valeurs de champ dans ma base de données Mysql (Sequelize ORM). Quelqu'un peut-il fournir des conseils quant à savoir si multer
est le bon module à utiliser pour ce type de téléchargement de formulaire et me diriger vers la documentation où je peux échanger req.body
avec une méthode spécifique au module?ExpressJS - Formulaire avec téléchargement de fichier Multipart causant req.body Problème
Qu'est-ce que ma forme ressemble
<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');
});
});