2017-07-20 4 views
0

Uploader des fichiers en utilisant multer, voici mon codeObtenir problème avec le fichier de téléchargement en utilisant multer

var multer = require('multer'); 
var upload = multer({ dest: 'uploads/' }); 
app.post("/upload",upload.single('image'), api.uploadFile); 

obtenir l'erreur suivante lors du chargement du fichier d'image faisant la demande en plusieurs parties

Error: Buffer.write(string, encoding, offset[, length]) is no longer supported 
    at Buffer.write (buffer.js:742:11) 
    at MultipartParser.initWithBoundary (D:\eclipse-workspace-oxy\ChatServer\node_modules\formidable\lib\multipart_parser.js:61:17) 
    at IncomingForm._initMultipart (D:\eclipse-workspace-oxy\ChatServer\node_modules\formidable\lib\incoming_form.js:308:10) 
    at IncomingForm._parseContentType (D:\eclipse-workspace-oxy\ChatServer\node_modules\formidable\lib\incoming_form.js:250:12) 
    at IncomingForm.writeHeaders (D:\eclipse-workspace-oxy\ChatServer\node_modules\formidable\lib\incoming_form.js:129:8) 
    at IncomingForm.parse (D:\eclipse-workspace-oxy\ChatServer\node_modules\formidable\lib\incoming_form.js:97:8) 
    at D:\eclipse-workspace-oxy\ChatServer\node_modules\connect\lib\middleware\multipart.js:125:12 

Répondre

1

Votre trace de la pile montre que le problème vient de formidable, pas multer.

Une recherche rapide sur les problèmes ouverts de formidable de github donne this.

Peut-être essayer d'exécuter npm update.

1

Enfin obtenu la solution, besoin d'ajouter bodyParser pour analyser les corps de requête dans un middleware.

var bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()); 

il fonctionnera pour les requêtes encodées par l'URL. Pour une requête en plusieurs parties, vous devez ajouter un middleware comme multer.