UNPKG

1.75 kBJavaScriptView Raw
1/**
2 * Module dependencies.
3 */
4
5var EventEmitter = require('events').EventEmitter;
6var mixin = require('utils-merge');
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});