Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
71 lines (48 sloc) 1.91 KB


This is simple routing for ExpressJS framework. It allows you to write routes in Ruby on rails 2 style.

Using with Express

After creating app instead of writing code like app.get('smth', doSmth); generate routes like that:

var map = new require('railway-routes').Map(app, handler);
map.namespace('admin', function (admin) {

In this example handler function will called immediately for each route, accepting three args: ns, controller, action and should return method which will me actually called to server request.

For example you have two controllers: posts and admin/users which looks like regular modules:

controllers/posts_controller.js = function (req, res) {

exports.edit = function (req, res) {

exports.destroy = function (req, res) {


same for controllers/admin/users_controller.js

In that case your handler should be:

function handler(ns, controller, action) {
    try {
        var ctlFile = './controllers/' + ns + controller + '_controller';
        var responseHandler =  require(ctlFile)[action];
    } catch(e) {}
    return responseHandler || function (req, res) {
        res.send('Handler not found for ' + ns + controller + '#' + action);


  • resourceful routes
  • generic routes
  • url helpers
  • namespaces
  • custom helper names / paths for resources


Example app

Check out example app to deal with middleware, route handling, and generic routes:

git clone git://
cd railway-routes-example-app
npm install
node app.js
Jump to Line
Something went wrong with that request. Please try again.