我想上传带有表单数据的照片。因此,在我的 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。
为什么我收到这个错误?我可以这样做吗?