Can you confirm that the parsing of the form works independently, i.e. if you omit the call to the database (findOne)?
If so, can you try customizing your form.on() callbacks and running form.parse() before calling User.findOne() ? A form object can internally listen for "data" events upon request that have already occurred by the time the callback from findOne() .
You can also try using request.pause () and request.resume () (hackier):
http.createServer(function(request, response) { request.pause(); User.findOne({ username: 'wayoutmind' }, function(error, user) { form.on('field', function(name, value) { console.log(name + ':' + value); }); request.resume(); form.parse(request); }); }).listen(1337);
source share