Skip to content

davidcornu/path-finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pathfinder

Simple named routes for Express.

Build Status

Deprecation Warning

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)

Usage

  1. Install via npm

    $ npm install path-finder
    
  2. Extend your Express app

    var express = require('express');
    var app = express();
    var pathFinder = require('path-finder');
    pathFinder.extend(app);
  3. 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 views

    a(href=p('promotions'))
      | View our promotions
    

Development

Clone the repo

$ git clone git@github.com:davidcornu/path-finder.git

Install dependencies

$ npm install

Run the tests

$ npm test

About

Named routes for Express.

Resources

Stars

Watchers

Forks

Packages

No packages published