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

下面是我处理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 ecos.config.js文件

 module.exports = { apps : [ { name : 'myapp', script : './myapp/backend/bin/www', env: { NODE_ENV: "production" } } ] } 

我跑了

 pm2 start ecosystem.config.js 

并尝试上传一个图像,来自multer的req.file将被取消查找。

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

我怎样才能解决它?

       

网上收集的解决方案 "为什么来自multer的req.file总是显示为undefined?"