Accessing Post Parameters in NodeJS from an Angular $resource.save Call

I am using an AngularJS Resource to make an ajax post to a node js server running express. However I am unable to access the post payload parameters on the NodeJS side.

I have a service set up:

angular.module('app.services', ['ngResource'])
    .factory('PostService', function($resource) {
        return $resource('/postTest');
    });

and in the controller I have:

function UserCtrl($scope, PostService) {
    //query for the users
    $scope.testPost = function() {
        var stuff = {firstname: 'some', lastname:'person'};
        PostService.save(stuff,function(data) {
            console.log('called save on PostService');
        });
    };
}

I can see the payload inside of the http header:

{"firstname":"some","lastname":"person"}

however, when I get to the NodeJS route to process it, I am not sure how to access the parameters:

(output from node console): inside test stuff req.params undefined

app.post('/postTest', function(req, res) {
        console.log('inside test stuff');
        console.log('req.params ' + req.param('stuff'));
    })

I have created a fiddle at: http://jsfiddle.net/binarygiant/QNqRj/

Can anyone explain how to access the parameters passed by the post in my NodeJS route?

Thanks in advance

If "{"firstname":"some","lastname":"person"}" is in the body of the post in json?

You'd access it differently.

Using express.bodyParser(), req.body.firstname will get you the firstname

app.use(express.bodyParser());

Then

app.post('/postTest', function(req, res) {
    console.log('inside test stuff');
console.log(req.body.firstname);
})

You need to set body parser in your App

for example in ExpressJs 4,

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));