Receiving req.body empty with post form with Express node.js
express, forms, node.js, post
Solution
`req.body` is made up of names and values.
add `name="search"` on your search box and try again.
You also must use the express/connect.bodyParser() middleware, thanks Nick Mitchinson!
Problem
I've got a simply form, that sends POST data to my Node.JS server, with Express. This is the form: ``` <form method="post" action="/sendmessage"> <div class="ui-widget"> <input type="text" id="search" data-provide="typeahead" placeholder="Search..." /> </div> <textarea id="message"></textarea> </form> ``` The ui-widget and the input is releated with `typehead`, an autocomplete library from Twitter. And this is how I handle the POST request in the server: ``` app.post('/sendmessage', function (req, res){ console.log(req.body); usermodel.findOne({ user: req.session.user }, function (err, auser){ if (err) throw err; usermodel.findOne({ user: req.body.search }, function (err, user){ if (err) throw err; var message = new messagemodel({ fromuser: auser._id, touser: user._id, message: req.body.message, status: false }); message.save(function (err){ if (err) throw err; res.redirect('/messages') }) }); }); }); ``` The console shows me '{}', and then an error with `req.body.search`, because `search` is not defined. I don't know what is happening here, and it's not a problem related with the `typehead` input. Any solution for this problem...? Thank's advance!