Simple named routes for Express.
The following methods will print deprecation messages when used as extending the
express app
variable is error prone and doesn't really provide a better interface,
especially when calling routes from controllers (req.app.p('login')
is a lot
more verbose than simply requiring path-finder
).
app.p(pathname)
app.addPath(pathname, path)
-
Install via npm
$ npm install path-finder
-
Extend your Express
app
var express = require('express'); var app = express(); var pathFinder = require('path-finder'); pathFinder.extend(app);
-
Profit
// Standard Express routing does not change app.get('/users', function(){...}) // Passing in a name stores the path app.get('/home', 'home', function(){...}) app.post('/user/:id', 'user', function(){...}); // Paths can be accessed via pathFinder.path('home'); //-> '/home' pathFinder.path('user', {id: 10}); //-> '/user/10' // Passing in additional options adds them to the query string pathFinder.path('home', {p: 1}); //-> '/home?p=1' // Ad-hoc paths can also be defined pathFinder.addPath('promotions', '/promotions'); pathFinder.path('promotions'); //-> '/promotions'
A
p
method is also made available to viewsa(href=p('promotions')) | View our promotions
Clone the repo
$ git clone git@github.com:davidcornu/path-finder.git
Install dependencies
$ npm install
Run the tests
$ npm test