Express, Multer, BodyParser req.body пустой массив

Извините за такой вопрос noob, но у меня есть форма для загрузки изображений и добавления текста в БД, изображения загружаются нормально, но объект req.body всегда является пустым массивом.

HTML

<form class='new-project' action='/projects' method='POST' enctype="multipart/form-data">
  <input type="text" name="title" placeholder="Project Title">
  <br>
  <textarea name="description" rows="8" cols="40" placeholder="Project description"></textarea>
  <br>
  <label for='file'>Select your image:</label>
  <input type='file' accept='image/*' name='uploadedImages' multiple/>
  <span class='hint'>Supported files: jpg, jpeg, png.</span>
  <br>
  <input type="submit" value="uploading_img">
</form>

JS

var bodyParser = require('body-parser'),
express    = require('express'),
multer     = require('multer'),

var storage = multer.diskStorage({
  destination: function (request, file, callback) {
    callback(null, './public/uploads');
  },
  filename: function (request, file, callback) {
    console.log(file);
    callback(null, file.originalname)
  }
});

var upload = multer({storage: storage}).any('uploadedImages');

app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

app.post('/projects', function(req, res){
  console.log('req.body');
  console.log(req.body);
  upload(req, res, function(err){
    if(err){
      console.log('Oh dear...');
      console.log(err);
      return;
    }
    console.log(req.files);
    res.end('Your files uploaded!');
    console.log('Yep yep!');
  });
});

Согласно документации, multer добавляет объект тела в запрос, но я получаю только пустой массив с парсером тела или без него.

Спасибо, что нашли время просмотреть код !!


person Runny Yolk    schedule 06.09.2016    source источник


Ответы (1)


Вы можете добиться желаемого req.body внутри метода upload (). Попробуйте записать req.body в том месте, где вы печатали req.files.

person Frank Fang    schedule 28.10.2016