How to access the post body in express route?
<p>I am learning how to build a web app using express, node, and angular. I have a post request from angular, and I can successfully send that to the router in login.js:</p>

<pre><code>var user = {username: $scope.userName, password: $scope.password};

$scope.login = function() {
    console.log('attempting to log in,,');
    console.log("The useranem" + $scope.userName + " " + $scope.password + " " + user);
    $http.post('/userLogin', user).then(successCallback, errorCallback);
};
</code></pre>

<p>index.js</p>

<pre><code>var express = require('express');
var router = express.Router();
var mysql = require('mysql');

var connection = mysql.createConnection({
    host      : 'localhost',
    user      : 'root',
    password  : 'xxxxx',
    database  : 'xxxxx'
});

connection.connect();

router.post('/userLogin', function(req, res, next){
   console.log('the user name is ' + req.body);
});

module.exports = router;
</code></pre>

<p><a href="https://i.stack.imgur.com/s5gCc.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/s5gCc.png" alt="enter image description here"></a></p>

<p>From the image, I can see that I was able to print out the body of the post request as objects. Is this because I don't have body parser in index.js.
I already installed body parser in app.js, </p>

<p>1) do I have to require app.js in index.js to use the body parser? </p>

<p>2)And once I am able to parse the body, how do I access the varaibles in the body. Would it be req.username and req.password?</p>

<p>3) This question is not as related, but in my app.js I have app.use('/', login). How do i determine what the path should be? Should it be the same as the express router such as /userLogin?</p>

<p>This is my app.js:</p>

<pre><code>var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mysql = require('mysql');

var routes = require('./routes/index');
var register = require('./routes/register');
var users = require('./routes/users');
var login = require('./routes/login');

var app = express();

//establish database connection
var connection = mysql.createConnection({
  host      : 'localhost',
  user      : 'root',
  password  : 'xxxxx',
  database  : 'xxxxx'
});

connection.connect();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);
app.use('/', login);
//add route for registering account

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});


module.exports = app;
</code></pre>

<p>Note: most of the stuff in app.js was created using express generator.</p>