Napoleon
An isomorphic JavaScript routing and HTML5 history library.
Quick Start
const Napoleon = ;const router = ;router; router; // calls the handler above, logging "Routed to user profile" to console
Routing
Routes are stored in a tree structure for fast insertion and lookup.
Adding routes
mount({method = 'GET', url, handler, name})
- method: GET|POST|PUT|DELETE|etc - case insensitive, defaults to GET
- url: URL path to match, named variable parameters are identified by brackets:
/user/{userId}
- handler: function which is called when the path is matched
- parameters: key/value object with parameters pulled from the route and querystring
- data: an argument that is passed through to the handler by the
route
method
URLs can be parameterized by wrapping one of the path segments in {}
brackets. For example, when matching a route /user/{userId}
anything in the segment following /user/
will be extracted into a userId
value. Star characters can be used as a match-all: /users/{userId}/*
let router = ;router;
Calling route handlers
Call route
to trigger a route handler for a given path.
router;
Retrieving route declaration object
You can retrieve the route object used when a route was mounted by calling matchRoute
const route = router;
Development
npm install
install packagesnpm test
will build napoleon, build tests, and run testsnpm run build
will build napoleon