MEANJS mongoos model in request object

I've just started with meanjs. When I've taken a look at it server side module user profile controller, I find that mongoos model User is available in req object.

From where it has got added in req object?

Refer the code below, I wants to understand var user = req.user;, How user is added in req object?

'use strict';

/**
 * Module dependencies.
 */
var _ = require('lodash'),
 errorHandler = require('../errors.server.controller.js'),
 mongoose = require('mongoose'),
 passport = require('passport'),
 User = mongoose.model('User');

/**
 * Update user details
 */
exports.update = function(req, res) {
 // Init Variables
 var user = req.user;
 var message = null;

 // For security measurement we remove the roles from the req.body object
 delete req.body.roles;

 if (user) {
  // Merge existing user
  user = _.extend(user, req.body);
  user.updated = Date.now();
  user.displayName = user.firstName + ' ' + user.lastName;

  user.save(function(err) {
   if (err) {
    return res.status(400).send({
     message: errorHandler.getErrorMessage(err)
    });
   } else {
    req.login(user, function(err) {
     if (err) {
      res.status(400).send(err);
     } else {
      res.json(user);
     }
    });
   }
  });
 } else {
  res.status(400).send({
   message: 'User is not signed in'
  });
 }
};

/**
 * Send User
 */
exports.me = function(req, res) {
 res.json(req.user || null);
};

Passport’s authentication middleware sets req.user upon successful login.

See http://passportjs.org/guide/authenticate/.

In meanjs app.param([name], callback) is used, whenever a route with some id like articeId in parameter is accessed, app.param([name], callback) middleware is triggered. In meanjs it sets req.article like this.

    app.param('articleId', articles.articleByID);

and in articleByID

exports.articleByID = function(req, res, next, id) {

  if (!mongoose.Types.ObjectId.isValid(id)) {
    return res.status(400).send({
        message: 'Article is invalid'
    });
    }

Article.findById(id).populate('user', 'displayName').exec(function(err, article) {
    if (err) return next(err);
    if (!article) {
        return res.status(404).send({
            message: errorHandler.getErrorMessage(err)
        });
    }
    req.article = article;
    next();
});
};

more on app.param see http://expressjs.com/api.html#app.param