Sha256: cb880526efc8f87799e55d182348d6ba5297c99f8e2967b292bfb6f005c547cc

Contents?: true

Size: 1.09 KB

Versions: 18

Compression:

Stored size: 1.09 KB

Contents

/*!
 * Connect - vhost
 * Copyright(c) 2010 Sencha Inc.
 * Copyright(c) 2011 TJ Holowaychuk
 * MIT Licensed
 */

/**
 * Setup vhost for the given `hostname` and `server`.
 *
 * Examples:
 *
 *     connect(
 *       connect.vhost('foo.com',
 *         connect.createServer(...middleware...)
 *       ),
 *       connect.vhost('bar.com',
 *         connect.createServer(...middleware...)
 *       )
 *     );
 *
 * @param {String} hostname
 * @param {Server} server
 * @return {Function}
 * @api public
 */

module.exports = function vhost(hostname, server){
  if (!hostname) throw new Error('vhost hostname required');
  if (!server) throw new Error('vhost server required');
  var regexp = new RegExp('^' + hostname.replace(/[*]/g, '(.*?)') + '$');
  if (server.onvhost) server.onvhost(hostname);
  return function vhost(req, res, next){
    if (!req.headers.host) return next();
    var host = req.headers.host.split(':')[0];
    if (req.subdomains = regexp.exec(host)) {
      req.subdomains = req.subdomains[0].split('.').slice(0, -1);
      server.emit("request", req, res);
    } else {
      next();
    }
  };
};

Version data entries

18 entries across 18 versions & 3 rubygems

Version Path
blackboard-3.1.9 lib/site_template/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.8.2 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.8.1 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.8.0 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.7.2 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.7.1 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.7.0 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.6.1 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.6.0 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.5.0 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.4.0 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.2.5 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.2.4 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.2.3 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.2.2 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.2.1 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
vulcan-0.2.0 server/node_modules/express/node_modules/connect/lib/middleware/vhost.js
coffeecake-0.0.1 node_modules/jasmine-runner/node_modules/express/node_modules/connect/lib/middleware/vhost.js