busboy not firing finish event

express, javascript, node.js

Solution

You need to consume the `file` stream somehow. For testing purposes you can ignore the data by adding `file.resume();` inside the file event handler.

Problem

I am trying to pass a request object from my routes to a controller which processes the uploads, here is the route - ``` app.post('/upload/notes',auth.requiresApiLogin,function(req,res){ upload.file(req,res); }); ``` here is the controller (upload.js) code which has the exported file method ``` var fs = require('fs'), uuid = require('node-uuid'), path = require('path'), Busboy = require('busboy'); exports.file = function(req, res) { var busboy = new Busboy({ headers: req.headers}); busboy.on('file', function(fieldname, file, filename,transferEncoding,mimeType) { console.log("inside upload function"); console.log(file); }); busboy.on('field', function(fieldname, val, valTruncated,keyTruncated) { console.log("inside field function"); console.log(fieldname); }); busboy.on('finish',function(){ console.log('finished'); }); req.pipe(busboy); // // req.pipe(req.busboy); // req.busboy.on('file', function(fieldname, file, filename,transferEncoding,mimeType) { // var fName = uuid.v4(); // console.log(filename); // var fileext = filename.substr(filename.lastIndexOf('.') + 1); // // console.log(transferEncoding); // console.log(mimeType); // var filepath = path.normalize(__dirname + '/../../'); // var fstream = fs.createWriteStream(filepath+'/server/uploads/'+fName+'.'+fileext); // file.pipe(fstream); // fstream.on('close', function () { // res.redirect('back'); // }); // }); }; ``` So, what i see that both the fields and the files are being logged in console but the finish event is not getting fired. What else should i try ?

Original source