【问题标题】:express body-parser and multer value receiving issue?express body-parser 和 multer value 接收问题?
【发布时间】:2018-11-08 21:20:23
【问题描述】:

我正在发送帖子请求/product/create 一些价值和图像。

如果我在

之前控制每个值
upload(req, res, (err) => {})

它在没有图像信息的情况下正常显示。

如果我收到upload(req, res, (err) => {})之后的值

没有显示任何值。

完整的发布请求代码:

  app.post('/product/create', (req, res) => {
      let filename;
      upload(req, res, (err) => {
        if(err){
          res.render('index', {
            msg: err
          });
        } else {
          if(req.file == undefined){
            res.render('index', {
              msg: 'Error: No File Selected!'
            });
          } else {
            res.render('index', {
              msg: 'File Uploaded!',
              filename = req.file.filename;
            });
          }
        }
      });

      const product = {
        title : req.body.title,
        desc  : req.body.desc,
        image  : filename,
      }
    });

配置 Multer:

const storage = multer.diskStorage({
  destination: './public/uploads/',
  filename: function(req, file, cb){
    cb(null,file.fieldname + '-' + Date.now() + path.extname(file.originalname));
  }
});


const upload = multer({
  storage: storage,
  limits:{fileSize: 1000000},
  fileFilter: function(req, file, cb){
    checkFileType(file, cb);
  }
}).single('myImage');


function checkFileType(file, cb){

  const filetypes = /jpeg|jpg|png|gif/;

  const extname = filetypes.test(path.extname(file.originalname).toLowerCase());

  const mimetype = filetypes.test(file.mimetype);

  if(mimetype && extname){
    return cb(null,true);
  } else {
    cb('Error: Images Only!');
  }
}

【问题讨论】:

  • 什么是上传的客户端代码,需要在请求时创建formData。
  • 也分享你的 multer 配置代码
  • 如果我控制图像名称,mimetype 以正确上传其显示,但是当尝试从上传 (req, res) 中获取图像值和其他值时,它没有任何价值。 >>>虽然我正在分享上传代码..查看更新

标签: node.js express multer body-parser


【解决方案1】:

Multer 不支持上传功能之外的“req.file.filename”。由于文件名、原始名、字段名等是 multer 的内置 API。仅限上传功能。

现在,如果您尝试在数据库中上传产品值,那么您只需在 multer 上传函数中创建一个插入函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多