I have the following form:
form(method='post', action='/encoder_post', enctype='multipart/form-data')
.form-group
label(for='name') Name
input.form-control(type='text', id='name', name='name')
.form-group
label(for='message') Message
input.form-control(type='text', id='message', name='message')
.form-group
label(for='file') Audio File (*.wav)
input.form-control(type='file', id='file')
button.btn.btn-cicada.btn-block(type='submit') Submit
Inside encoder_post
, I have the following function to handle the post request:
router.post('/', function(req, res){
req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
console.log("this is in file");
});
req.busboy.on('field', function(key, value, keyTruncated, valueTruncated) {
console.log("The value is: " + value);
});
req.pipe(req.busboy);
});
However, whenever I submit the form, the 'field' handler triggers, but the 'file' doesn't.
Inside app.js
I have:
var busboy = require('connect-busboy');
app.use(busboy());
Any ideas?
busboy
waits for your handler middle-ware to be reached to fire its parsing events ? I think those events should be handled right whenbusboy
starts parsing request. – Brooklyneseconnect-busboy
merely setups up an instance onreq.busboy
. It doesn't start parsing until you start writing to it. – Enrichetta