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)]