more-router
Introduction
more-router is a routing library. It can run both on the client as well as on the server.
Its possibly special qualities include:
-
it has a precedence system: given the pattern
/foo
and the pattern/{myvariable}
, the path/foo
will match the pattern/foo
, not the variable. -
you mix text and variables in a single segment:
/prefix{variable}
-
a publisher abstraction where you can express routes only respond to particular requests, i.e. only GET requests.
Usage
var moreRouter = ; var router = ; // second argument can be anything you like; here we use a string // for easy demonstration of the API router; router router // returns // { // value: "found a", // stack: [], // variables: {} // } router // returns // { // value: "found a/{v}", // stack: [], // variables: {'v': 'foo'} // } // alternate consume interface which taxes a stack router // returns // { // value: "found a/{v}", // stack: [], // variables: {'v': 'foo'} // } // if no match exists, value is null, unmatched segments are on stack router // returns // { // value: null, // stack: ['notthere'], // variables: {} // }
Publisher
To be documented.
Background
more-router is derived from the routing code in the Morepath web framework written in Python.