2way-router
routing plugin for node.js
Usage
Defining routes
var Router = ;var router = ;// you must provide your own controllersrouter name'main' ;router name'news' ;router name'news-archive' ;router name'news-publication' ;
Detecting route
router;
Creating urls
router;
Full example
You will need to run
npm install 2way-router express promise
Example application:
var Router = ;var Promise = ;var express = ;var router = ;var links = page: 'main' text: 'main page' page: 'news' text: 'news page' page: 'news-archive' text: 'news archive for today' params: year: month: day: ; { value = Stringvalue; while valuelength < length value = '0' + value; return value;} { { var pageContent = 'page: ' + name + ', params: <pre>' + JSON + '</pre>'; Promisealllinks; } router namename ;} ;;;; var app = ;app;app;
API
Router
router.route(pathTemplate)
- creates new Route
router.findRoute(url, [options])
- searchs for matching route, returns Promise<Route>
router.url(routeName, [params])
- creates url for route with name routeName, returns Promise<string>
router.registerType(typeConstructor, names)
- registers new param type for further usage in routes, must be called before any router.route
calls, type example can be found at NumberParam.js
Route
route.name([newName])
- get/set route name
route.controller([newController])
- get/set route controller
route.url([params])
- creates url for this route, returns Promise<string>
route.setDefaultParams(params)
- set default params for this route
RouteParams
params.getRouteParam(name, [defaultValue=null])
- get route param value (for example id
in route "/news/{id:int}/"
)
params.getQueryParam(name, [defaultValue=null])
- get query string param with given name (last one if many are present), returns string
params.getQueryParamValues(name)
- get all values for query string param with given name, returns string[]