arnaucube
arnaucube/socketioMEANseedPublic Self-hosted repository
socketioMEANseed/server/node_modules/express/lib/express.js
server/node_modules/express/lib/express.jsRaw
 1/**
 2 * Module dependencies.
 3 */
 4
 5var EventEmitter = require('events').EventEmitter;
 6var mixin = require('merge-descriptors');
 7var proto = require('./application');
 8var Route = require('./router/route');
 9var Router = require('./router');
10var req = require('./request');
11var res = require('./response');
12
13/**
14 * Expose `createApplication()`.
15 */
16
17exports = module.exports = createApplication;
18
19/**
20 * Create an express application.
21 *
22 * @return {Function}
23 * @api public
24 */
25
26function 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
44exports.application = proto;
45exports.request = req;
46exports.response = res;
47
48/**
49 * Expose constructors.
50 */
51
52exports.Route = Route;
53exports.Router = Router;
54
55/**
56 * Expose middleware
57 */
58
59exports.query = require('./middleware/query');
60exports.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});