我正在使用 Node js 并且在使用我的后端代码一个图像和一个 pdf 文件上传两个文件时遇到问题

问题描述

我实际上得到了这个错误(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 (将#修改为@)