0
MulterError: Unexpected field
    at wrappedFileFilter (E:\DRIVER\Programmation\site-exo\nodejs\node_modules\multer\index.js:40:19)
    at Multipart.<anonymous> (E:\DRIVER\Programmation\site-exo\nodejs\node_modules\multer\lib\make-middleware.js:107:7) 
    at Multipart.emit (node:events:513:28)
    at HeaderParser.cb (E:\DRIVER\Programmation\site-exo\nodejs\node_modules\busboy\lib\types\multipart.js:358:14)
    at HeaderParser.push (E:\DRIVER\Programmation\site-exo\nodejs\node_modules\busboy\lib\types\multipart.js:162:20)
    at SBMH.ssCb [as _cb] (E:\DRIVER\Programmation\site-exo\nodejs\node_modules\busboy\lib\types\multipart.js:394:37)
    at feed (E:\DRIVER\Programmation\site-exo\nodejs\node_modules\streamsearch\lib\sbmh.js:219:14)
    at SBMH.push (E:\DRIVER\Programmation\site-exo\nodejs\node_modules\streamsearch\lib\sbmh.js:104:16)
    at Multipart._write (E:\DRIVER\Programmation\site-exo\nodejs\node_modules\busboy\lib\types\multipart.js:567:19)
    at writeOrBuffer (node:internal/streams/writable:392:12)

Voilà mon code d'authentification:

module.exports = (req, res, next) => {
    try {

        //Récuperer le token
        const token = req.headers.authorization.split(" ")[1];

        //Décoder le token
        const decode = jwt.verify(token, `${process.env.KEY_TOKEN}`)

        console.log('----->Elément du reqOriginalUrl ');
        console.log(req.originalUrl.split('=')[1]);
        const urlId = req.originalUrl.split('=')[1];

        //Comparaison de l'userIdDécoder et l'UserId du body
        if (req._body === true) {
            //Elément du raw
            if (req.body.userId === decode.userId) {
                next();
            } else {
                throw 'Erreur de userId';
                console.log('Erreur de userId');
            };
        } else if(urlId === decode.userId){
            //Elément du form-data
                console.log('----->req urlId');
                next(); //quand le serveur arrive par là, il renvoi l'erreure MulterError: Unexpected field
            } else {
                throw 'Erreur de urlId';
                console.log('Erreur de urlId');
            };
    } catch (error) {
        res.status(401).json({
            error: 'Erreur authentification',
            error: error
        })
    }

Voilà mon code qui fait appel au milter

const multer = require('multer');

const MIME_TYPES = {
    "image/jpg" :"jpg",
    "image/jpeg" :"jpeg",
    "image/gif" : "gif",
    "image/png" : "png"
};

//Destination du fichier
const storage = multer.diskStorage({
    destination : (req, file, callback) => {
        callback(null, "imageFile");
    },
    filename : (req, file, callback) => {
        //Supprimé les espace au nom du fichier en cas de présense
        const nameFile = file.originalname.split(' ').join('_');
        const extension = MIME_TYPES[file.mimetype];

        callback(null, nameFile + '_' + Date.now() + '.' + extension);
    }
});

module.exports = multer({storage}).single('image');

Sur postman sa donne sa: [(https://i.stack.imgur.com/7T4ix.png)]

toyota Supra
  • 3,181
  • 4
  • 15
  • 19

0 Answers0