StructureJS
0.15.2A class based utility library for building modular and scalable web platform applications. Features opt-in classes and utilities which provide a solid foundation and toolset to build your next project.
The Route class is a model that keeps track of a specific route for the Router class.
callback
Function
public
The function that should be executed when a request matches the routePattern. The Router class will be using this property.
callbackScope
Any
public
The scope of the callback function that should be executed. The Router class will be using this property.
regex
RegExp
public
The regex representation for the routePattern that was passed into the constructor.
routePattern
String
public
The string pattern you want to have match, which can be any of the following combinations {}, ::, *, ?, "". See below for examples.
Route
routePattern
callback
callbackScope
// Example of adding a route listener and the function callback below.
let route = new Route('/games/{gameName}/:level:/', this._method, this);
// The above route would match the string below:
route.match('/games/asteroids/2/');
:optional: The two colons :: means a part of the hash url is optional for the match. The text between can be anything you want it to be.
let route = new Route('/contact/:name:/', this._method, this);
// Will match one of the following:
route.match('/contact/');
route.match('/contact/heather/');
route.match('/contact/john/');
{required} The two curly brackets {} means a part of the hash url is required for the match. The text between can be anything you want it to be.
let route = new Route('/product/{productName}/', this._method, this);
// Will match one of the following:
route.match('/product/shoes/');
route.match('/product/jackets/');
* The asterisk character means it will match all or part of part the hash url.
let route = new Route('*', this._method, this);
// Will match one of the following:
route.match('/anything/');
route.match('/matches/any/hash/url/');
route.match('/really/it/matches/any/and/all/hash/urls/');
'' The empty string means it will match when there are no hash url.
let route = new Route('', this._method, this);
let route = new Route('/', this._method, this);
// Will match one of the following:
route.match('');
route.match('/');
Other possible combinations but not limited too:
let route = new Route('/games/{gameName}/:level:/', this._method1, this);
let route = new Route('/{category}/blog/', this._method2, this);
let route = new Route('/about/*', this._method3, this);
_routePatternToRegexp
routePattern
match
route
Determine if a route matches a routePattern.
route
String
The route or path to match against the routePattern that was passed into the constructor.
let route = new Route('/games/{gameName}/:level:/', this.method, this);
console.log( route.match('/games/asteroids/2/') );