问题描述
我实际上得到了这个错误(PS:我在上传文件夹中得到了图像和pdf文件,但没有在数据库中添加任何内容):
TypeError: Cannot read property 'filename' of undefined
at CreatePost (C:\Users\21658\Desktop\Sponsorini\Controllers\PostsC.js:16:41)
at Layer.handle [as handle_request] (C:\Users\21658\Desktop\Sponsorini\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\21658\Desktop\Sponsorini\node_modules\express\lib\router\route.js:137:13)
at Immediate.<anonymous> (C:\Users\21658\Desktop\Sponsorini\node_modules\multer\lib\make-middleware.js:53:37)
at processImmediate (internal/timers.js:463:21)
这是控制器代码:
CreatePost : function(req,res) {
Posts.create(
{ name_event:req.body.name_event,Description:req.body.Description,photo:req.file.filename,file:req.file.filename,},function(err,User){
if (err){
console.log('fiiiiilllllllllllllllleeeeeeee',req.file)
console.log(err)
res.json({msg: 'error',statut:500,data:null})
}
else {
res.status(200).json({msg:'utilisateur ajouté',statut: 200,data : User})
}
})
},
这也是multer代码:
const multer = require('multer')
const uuid = require("uuid").v4;
const path=require('path')
const storage = multer.diskStorage({
destination: (req,file,cb)=>{
cb(null,'files/');
},filename:(req,cb)=>{
const ext = path.extname(file.originalname);
const originalname = `${uuid()}${ext}`+file.originalname;
cb(null,originalname);
console.log("file",file);
}});
const fileFilter = (req,cb)=>{
if (file.mimetype =='image/jpeg' || file.mimetype == 'image/png' || file.mimetype == 'image/jpg'){
cb(null,true);
}
else if (file.mimetype ==='application/pdf'){
cb(null,true);
}
else{
cb(null,false);
}
}
const upload = multer({storage:storage,fileFilter:fileFilter});
module.exports=upload
最后,这是路由器代码:
const PostsC = require('../Controllers/PostsC')
const upload=require('../middleware/uploads')
const route = require('express').Router()
route.post('/addPos',upload.fields([
{
name:'photo',maxCount:1
},{
name:'file',maxCount:1
}
]),PostsC.CreatePost);
route.get('/getonePos/:id',PostsC.getonePost);
route.get('/getallPos',PostsC.getAllPosts);
route.put('/updatePos/:id',PostsC.updatePostById);
module.exports=route
任何想法,请!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)