Spaces:
Sleeping
Sleeping
| /*! | |
| * express | |
| * Copyright(c) 2009-2013 TJ Holowaychuk | |
| * Copyright(c) 2013 Roman Shtylman | |
| * Copyright(c) 2014-2015 Douglas Christopher Wilson | |
| * MIT Licensed | |
| */ | |
| ; | |
| /** | |
| * Module dependencies. | |
| */ | |
| var bodyParser = require('body-parser') | |
| var EventEmitter = require('events').EventEmitter; | |
| var mixin = require('merge-descriptors'); | |
| var proto = require('./application'); | |
| var Route = require('./router/route'); | |
| var Router = require('./router'); | |
| var req = require('./request'); | |
| var res = require('./response'); | |
| /** | |
| * Expose `createApplication()`. | |
| */ | |
| exports = module.exports = createApplication; | |
| /** | |
| * Create an express application. | |
| * | |
| * @return {Function} | |
| * @api public | |
| */ | |
| function createApplication() { | |
| var app = function(req, res, next) { | |
| app.handle(req, res, next); | |
| }; | |
| mixin(app, EventEmitter.prototype, false); | |
| mixin(app, proto, false); | |
| // expose the prototype that will get set on requests | |
| app.request = Object.create(req, { | |
| app: { configurable: true, enumerable: true, writable: true, value: app } | |
| }) | |
| // expose the prototype that will get set on responses | |
| app.response = Object.create(res, { | |
| app: { configurable: true, enumerable: true, writable: true, value: app } | |
| }) | |
| app.init(); | |
| return app; | |
| } | |
| /** | |
| * Expose the prototypes. | |
| */ | |
| exports.application = proto; | |
| exports.request = req; | |
| exports.response = res; | |
| /** | |
| * Expose constructors. | |
| */ | |
| exports.Route = Route; | |
| exports.Router = Router; | |
| /** | |
| * Expose middleware | |
| */ | |
| exports.json = bodyParser.json | |
| exports.query = require('./middleware/query'); | |
| exports.raw = bodyParser.raw | |
| exports.static = require('serve-static'); | |
| exports.text = bodyParser.text | |
| exports.urlencoded = bodyParser.urlencoded | |
| /** | |
| * Replace removed middleware with an appropriate error message. | |
| */ | |
| var removedMiddlewares = [ | |
| 'bodyParser', | |
| 'compress', | |
| 'cookieSession', | |
| 'session', | |
| 'logger', | |
| 'cookieParser', | |
| 'favicon', | |
| 'responseTime', | |
| 'errorHandler', | |
| 'timeout', | |
| 'methodOverride', | |
| 'vhost', | |
| 'csrf', | |
| 'directory', | |
| 'limit', | |
| 'multipart', | |
| 'staticCache' | |
| ] | |
| removedMiddlewares.forEach(function (name) { | |
| Object.defineProperty(exports, name, { | |
| get: function () { | |
| 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.'); | |
| }, | |
| configurable: true | |
| }); | |
| }); | |