express Multer 文件上传 req.files 未定义错误

时间:2021-06-14 19:35:06

标签: javascript node.js express multer

我想上传带有表单数据的照片。因此,在我的 Express 应用中,我决定使用 Morgan。

我的 app.js 是这样的:

const express = require ('express');
const app = express();
const bodyParser = require ('body-parser');
const productRoutes = require('./api/routes/product')



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

app.use('/product' , productRoutes);

module.exports = app;

我的 product.js 文件是这样的:

const express = require('express');
const router = express.Router();
const multer = require('multer');

const imageStorage = multer.diskStorage({
  destination: './images',
  filename(req, file, cb) {
      const newFileName = `${uuid()}-${file.originalname}`
      cb(null, newFileName)
  }
})

const uploadImage = multer({ imageStorage })

router.post('/addImage' , uploadImage.single('ad_image'), async(req,res,next)=>{
    console.log(req.files) ===========>>> return undefined
    const file_path = "./images/"+req.file.filename
    var imagePath = ""
    try {
        if (fs.existsSync(file_path)) {     
            imagePath = path.resolve(file_path)
        }
    } catch(err) {
        console.log(err)
    }
...
...
}

我收到这样的错误:

undefined =========>>>  console.log(req.files)
(node:10968) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'filename' of undefined

此外,我在 CampaignRoutes 上使用了 Multer。

为什么我收到这个错误?我可以这样做吗?

0 个答案:

没有答案