github.com/cloudcredo/cloudrocker@v0.0.0-20160108110610-1320f8cc2dfd/sample-apps/node/node_modules/express/lib/express.js (about)

     1  /**
     2   * Module dependencies.
     3   */
     4  
     5  var EventEmitter = require('events').EventEmitter;
     6  var mixin = require('utils-merge');
     7  var proto = require('./application');
     8  var Route = require('./router/route');
     9  var Router = require('./router');
    10  var req = require('./request');
    11  var res = require('./response');
    12  
    13  /**
    14   * Expose `createApplication()`.
    15   */
    16  
    17  exports = module.exports = createApplication;
    18  
    19  /**
    20   * Create an express application.
    21   *
    22   * @return {Function}
    23   * @api public
    24   */
    25  
    26  function createApplication() {
    27    var app = function(req, res, next) {
    28      app.handle(req, res, next);
    29    };
    30  
    31    mixin(app, proto);
    32    mixin(app, EventEmitter.prototype);
    33  
    34    app.request = { __proto__: req, app: app };
    35    app.response = { __proto__: res, app: app };
    36    app.init();
    37    return app;
    38  }
    39  
    40  /**
    41   * Expose the prototypes.
    42   */
    43  
    44  exports.application = proto;
    45  exports.request = req;
    46  exports.response = res;
    47  
    48  /**
    49   * Expose constructors.
    50   */
    51  
    52  exports.Route = Route;
    53  exports.Router = Router;
    54  
    55  /**
    56   * Expose middleware
    57   */
    58  
    59  exports.query = require('./middleware/query');
    60  exports.static = require('serve-static');
    61  
    62  /**
    63   * Replace removed middleware with an appropriate error message.
    64   */
    65  
    66  [
    67    'json',
    68    'urlencoded',
    69    'bodyParser',
    70    'compress',
    71    'cookieSession',
    72    'session',
    73    'logger',
    74    'cookieParser',
    75    'favicon',
    76    'responseTime',
    77    'errorHandler',
    78    'timeout',
    79    'methodOverride',
    80    'vhost',
    81    'csrf',
    82    'directory',
    83    'limit',
    84    'multipart',
    85    'staticCache',
    86  ].forEach(function (name) {
    87    Object.defineProperty(exports, name, {
    88      get: function () {
    89        throw new Error('Most middleware (like ' + name + ') is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.');
    90      },
    91      configurable: true
    92    });
    93  });