arnaucube
arnaucube/raspberryGPIOhtmlserverPublic Self-hosted repository
raspberryGPIOhtmlserver/node_modules/connect/lib/connect.js
node_modules/connect/lib/connect.jsRaw
 1/*!
 2 * Connect
 3 * Copyright(c) 2010 Sencha Inc.
 4 * Copyright(c) 2011 TJ Holowaychuk
 5 * MIT Licensed
 6 */
 7
 8/**
 9 * Module dependencies.
10 */
11
12var EventEmitter = require('events').EventEmitter
13  , proto = require('./proto')
14  , utils = require('./utils')
15  , path = require('path')
16  , basename = path.basename
17  , fs = require('fs');
18
19// node patches
20
21require('./patch');
22
23// expose createServer() as the module
24
25exports = module.exports = createServer;
26
27/**
28 * Framework version.
29 */
30
31exports.version = '2.7.11';
32
33/**
34 * Expose mime module.
35 */
36
37exports.mime = require('./middleware/static').mime;
38
39/**
40 * Expose the prototype.
41 */
42
43exports.proto = proto;
44
45/**
46 * Auto-load middleware getters.
47 */
48
49exports.middleware = {};
50
51/**
52 * Expose utilities.
53 */
54
55exports.utils = utils;
56
57/**
58 * Create a new connect server.
59 *
60 * @return {Function}
61 * @api public
62 */
63
64function createServer() {
65  function app(req, res, next){ app.handle(req, res, next); }
66  utils.merge(app, proto);
67  utils.merge(app, EventEmitter.prototype);
68  app.route = '/';
69  app.stack = [];
70  for (var i = 0; i < arguments.length; ++i) {
71    app.use(arguments[i]);
72  }
73  return app;
74};
75
76/**
77 * Support old `.createServer()` method.
78 */
79
80createServer.createServer = createServer;
81
82/**
83 * Auto-load bundled middleware with getters.
84 */
85
86fs.readdirSync(__dirname + '/middleware').forEach(function(filename){
87  if (!/\.js$/.test(filename)) return;
88  var name = basename(filename, '.js');
89  function load(){ return require('./middleware/' + name); }
90  exports.middleware.__defineGetter__(name, load);
91  exports.__defineGetter__(name, load);
92});