Express,Multer,BodyParser req.body空数组 [英] Express, Multer, BodyParser req.body empty array

查看:251
本文介绍了Express,Multer,BodyParser req.body空数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

很抱歉出现这样的菜鸟问题,但是我有一个表单可以上传图像并向数据库中添加一些文本,图像可以很好地上传,但是req.body对象始终是一个空数组.

Sorry for such a noob question, but I have a form upload images and add some text to the DB, the images are uploading fine, but the req.body object is always an empty array.

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向请求中添加了一个body对象,但是无论是否包含body-parser,我只会得到一个空数组.

According to the documentation, multer add a body object to the request, but I only get an empty array back with or without body-parser.

感谢您抽出宝贵的时间阅读代码!

Thanks for taking the time to look through the code!!

推荐答案

您可以在upload()方法中获取所需的req.body. 尝试在打印req.files的地方记录req.body.

Your can get desired req.body inside the upload() method. Try logging req.body in the place where you print req.files.

这篇关于Express,Multer,BodyParser req.body空数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆