| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | /*! * express * Copyright(c) 2009-2013 TJ Holowaychuk * Copyright(c) 2013 Roman Shtylman * Copyright(c) 2014-2015 Douglas Christopher Wilson * MIT Licensed */'use strict';/** * 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.jsonexports.query = require('./middleware/query');exports.raw = bodyParser.rawexports.static = require('serve-static');exports.text = bodyParser.textexports.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  });});
 |