Error: parser error, 0 of 4344 bytes parsed (Node.js)

I am trying to download a program to download files. The code I'm using is

app.post('/photos',loadUser, function(req, res) { var post = new Post(); req.form.complete(function(err, fields, files) { if(err) { console.log(err); next(err); } else { ins = fs.createReadStream(files.file.path); ous = fs.createWriteStream(__dirname + '/public/uploads/photos/' + files.file.filename); post.filename=files.file.filename; post.file=files.file.path; util.pump(ins, ous, function(err) { if(err) { next(err); } else { post.save(function(err,docs) { req.flash('info', 'information Saved'); res.redirect('/photos'); }); } }); } }); }); 

When I remove the loadUser method, everything works fine, but when I use the loadUser method, it gives me an error. Error Console Information:

 Error: parser error, 0 of 4344 bytes parsed at IncomingForm.write (/home/darhamid/node_modules/formidable/lib/incoming_form.js:141:17) at IncomingMessage.<anonymous> (/home/darhamid/node_modules/formidable/lib/incoming_form.js:91:12) at IncomingMessage.emit (events.js:67:17) at HTTPParser.onBody (http.js:121:23) at Socket.ondata (http.js:1349:22) at TCP.onread (net_uv.js:312:27) 

The error only occurs when I use the loadUser function, if I remove the Funciton bootloader, everything works fine. I do not know the reasons for this and got stuck. Can anybody help me?

+4
source share
3 answers

You are trying to perform a database operation in front of everything that creates problems for you. Try the following code:

 app.post('/potos', function(req, res, next) { //req.form.pause(); req.form.complete(function(err, fields, files) { if(err) { next(err); } else { ins = fs.createReadStream(files.file.path); ous = fs.createWriteStream(__dirname + '/public/uploads/photos/' + files.file.filename); var post = new Post(); post.filename=files.file.filename; post.file=files.file.path; post.created_at = new Date(); post.user_id = req.session.user_id; function postCreationFailed() { req.flash('error', 'Unable to Download '); res.render('photos/new', { locals: { post: new Post(),currentUser: req.session.user_id } }); } util.pump(ins, ous, function(err) { if(err) { next(err); } else { console.log('\nuploaded %s to %s', files.file.filename, files.file.path); post.save(function(err) { if (err) return postCreationFailed(); req.flash('info', 'photos Succesfully Uploaded'); res.redirect('/user/photos/'+post.user_id); }); } }); } }); req.form.on('progress', function(bytesReceived, bytesExpected){ var percent = (bytesReceived / bytesExpected * 100) | 0; process.stdout.write('Uploading: %' + percent + '\r'); }); }); 

Good luck ...

+1
source
+2
source

Another possible cause of the problem on this line:

request.setEncoding ("utf8");

+2
source

Source: https://habr.com/ru/post/1382488/


All Articles