text: var express = require('express');
  var glob = require('glob');
  var logger = require('morgan');
  var cookieParser = require('cookie-parser');
  var bodyParser = require('body-parser');
  var compress = require('compression');
  var methodOverride = require('method-override');
  var passport = require('passport');
  var cors = require('cors'); //https://github.com/expressjs/cors
  
  module.exports = function(app, config) {
  
    var env = process.env.NODE_ENV || 'development';
  
    app.locals.ENV = env;
    app.locals.ENV_DEVELOPMENT = env == 'development';
  
    app.set('views', config.root + '/app/views');
    app.set('view engine', 'jade');
  
    // CORS
    app.use(cors());
    
    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(cookieParser());
    app.use(compress());
    app.use(express.static(config.root + '/public'));
    app.use(methodOverride());
  
  	// Init Passport Authenticate
  	app.use(passport.initialize());
  
    // Load Controllers
    var controllers = glob.sync(config.root + '/app/controllers/*.js');
    controllers.forEach(function (controller) {
      require(controller)(app);
    });
  
    app.use(function (req, res, next) {
      var err = new Error('Not Found');
      err.status = 404;
      next(err);
    });
  
    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,
          title: 'error'
        });
      });
    }
  
    app.use(function (err, req, res, next) {
      res.status(err.status || 500);
        res.render('error', {
          message: err.message,
          error: {},
          title: 'error'
        });
    });
  
  };
  