为什么multer的req.file总是显示undefined?

时间:2017-08-28 09:57:42

标签: javascript node.js express multer pm2

以下是我处理uploadImage路由的代码

var storage = multer.diskStorage({
  destination: function(req, file, cb) {
    cb(null, 'uploads/');
  },
  filename: function(req, file, cb) {
    cb(
      null,
      file.originalname.split('.')[0] +
        '__' +
        Date.now() +
        '.' +
        file.originalname.split('.')[1]
    );
  }
});
var upload = multer({ storage: storage }).single('thumbnail');

router.post('/uploadImage.json', authenticate, function(req, res) {
  upload(req, res, function() {

    console.log(req.file); //here always "undefined"

    let image = new Image({
      image_filename: req.file.filename,
      image_url: NODE_ENV.domain_name + '/' + req.file.path,
      _creator: req.user._id
    });

    image
      .save()
      .then(image => {
       res.send(image);
      })
      .catch(err => {
        res.status(400).send({ status: 'error', message: err });
      });
  });
});

我在pm2上运行我的节点应用程序,下面是我的pm2 ecosystem.config.js文件

module.exports = {
  apps : [

    {
      name      : 'myapp',
      script    : './myapp/backend/bin/www',
      env: {
        NODE_ENV: "production"
      }
    }
  ]
}

我跑

pm2 start ecosystem.config.js 

并尝试上传图片,multer的req.file将是unfind。

但如果我将NODE_ENV更改为开发,一切都会好的。

我该如何解决?

0 个答案:

没有答案