Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Lightweight and flexible URL pattern matching in JavaScript.
tree: 33005749e9

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
test
.gitignore
Makefile
README.md
package.json
way.js
way.min.js

README.md

WayJS

Light and flexible URL routing in JavaScript.

Tests:

You'll need mocha to run the tests.

Run npm install -g. The -g flag tells the NPM to install it globally so mocha's binaries goes in /usr/bin directory.

Then run mocha.

Usage:

Register a new route:

way.map('/hello', function() {
  console.log('Hello, world');
});

Then match some path against route table:

var action = way.match('/hello');

This will return either the callback or null if no matching route is found.

action(); //-> console.log('Hello, world');

Way can be used within the browser or with Node.

Route patterns accepts 3 special syntaxes:

Named parameters

way.map('/log/:message', function() {
  console.log(way.params.message);
});

Optional groups

way.map('(/good)/bye', function() {
  console.log('Farewell!!');
})

Splats

way.map('/goto/*', function() {
  console.log('Goto: ', way.params.splat);
});

They can be combined to create powerful routes.

Also please note that routes are matched in the order they're registered.

Roadmap:

  1. Hooks
  2. Better tests
  3. Skipping routes
Something went wrong with that request. Please try again.