diff options
| author | Teddy Wing | 2013-04-27 18:20:41 -0400 | 
|---|---|---|
| committer | Teddy Wing | 2013-04-27 18:20:41 -0400 | 
| commit | 4b14305623d5ddc59f435fc5e35c54c0def1d392 (patch) | |
| tree | ef780015587343a48c46a59a7ccd0263308d062a /node_modules/express/lib/router/route.js | |
| parent | 52127aee97d0d16be652d2063c9aefbbef234f43 (diff) | |
| download | Who-am-I-4b14305623d5ddc59f435fc5e35c54c0def1d392.tar.bz2 | |
Change to node/express app
Diffstat (limited to 'node_modules/express/lib/router/route.js')
| -rw-r--r-- | node_modules/express/lib/router/route.js | 72 | 
1 files changed, 72 insertions, 0 deletions
| diff --git a/node_modules/express/lib/router/route.js b/node_modules/express/lib/router/route.js new file mode 100644 index 0000000..c1a0b5e --- /dev/null +++ b/node_modules/express/lib/router/route.js @@ -0,0 +1,72 @@ + +/** + * Module dependencies. + */ + +var utils = require('../utils'); + +/** + * Expose `Route`. + */ + +module.exports = Route; + +/** + * Initialize `Route` with the given HTTP `method`, `path`, + * and an array of `callbacks` and `options`. + * + * Options: + * + *   - `sensitive`    enable case-sensitive routes + *   - `strict`       enable strict matching for trailing slashes + * + * @param {String} method + * @param {String} path + * @param {Array} callbacks + * @param {Object} options. + * @api private + */ + +function Route(method, path, callbacks, options) { +  options = options || {}; +  this.path = path; +  this.method = method; +  this.callbacks = callbacks; +  this.regexp = utils.pathRegexp(path +    , this.keys = [] +    , options.sensitive +    , options.strict); +} + +/** + * Check if this route matches `path`, if so + * populate `.params`. + * + * @param {String} path + * @return {Boolean} + * @api private + */ + +Route.prototype.match = function(path){ +  var keys = this.keys +    , params = this.params = [] +    , m = this.regexp.exec(path); + +  if (!m) return false; + +  for (var i = 1, len = m.length; i < len; ++i) { +    var key = keys[i - 1]; + +    var val = 'string' == typeof m[i] +      ? decodeURIComponent(m[i]) +      : m[i]; + +    if (key) { +      params[key.name] = val; +    } else { +      params.push(val); +    } +  } + +  return true; +}; | 
