Question: I'm trying to parse incoming emails from the Sendgrid Inbound Webhook with Meteor, Picker and Body-Parser. I get the emails but when I log the request body I get an empty object. What am I missing here??

```
var bodyParser = require('body-parser');;

Picker.middleware( bodyParser.json() );

Picker.route('/incoming/', function(params, req, res, next) {
    console.log("Body: " + JSON.stringify(req.body));
}

```

Answer: 
The problem was related to the content-type being multipart/form-data. Got it working like this:

```
var multiparty = require('multiparty');
var bodyParser = Npm.require('body-parser');

Picker.middleware(bodyParser.urlencoded({ extended: true }));
Picker.middleware(bodyParser.json());

Picker.route('/incoming/', function(params, req, res, next) {
  var form = new multiparty.Form();
  form.parse(req, function(err, fields, files) {
    console.log("Heureka: " + JSON.stringify(fields) + JSON.stringify(files));
    res.writeHead(200, {'content-type': 'text/plain'});
    res.write('received upload:\n\n');
    res.end("thanks");
  });
});

```
It sounds like the incoming content from SendGrid doesn't have a `application/json` Content-Type, so `bodyParser.json()` can't parse it properly. Try adding a `bodyParser.urlencoded()` call as well, to try to parse a `application/x-www-form-urlencoded` Content-Type, to see if that helps. So something like:

```
var bodyParser = require('body-parser');

Picker.middleware(bodyParser.json());
Picker.middleware(bodyParser.urlencoded({ extended: false }));

Picker.route('/incoming/', function(params, req, res, next) {
  console.log("Body: " + JSON.stringify(req.body));
}

```