rut

Routing middleware for stack

rut

Routing middleware for stack.

var http = require('http');
var rut = require('rut');
var stack = require('stack');
 
// Pass stack to createServer for middlewares 
http.createServer(stack(
 
  // Calling rut without a method is the same as rut.all() 
  rut('/', function (reqresnext) {
    res.end('ding ding');
  }),
 
  // A call to rut.post() will only cover the POST for that path 
  rut.post('/form', function (reqresnext) {
    var received = 'Posted: ';
    req.on('data', function (data) {
      received += data;
    });
    req.on('end', function () {
      res.end(received);
    });
  }),
 
  // A star will match any non-slash 
  rut.get('/user/*', function (reqresnextuserId) {
    // userId can also be found at req.params[0] 
    res.end('user: ' + userId);
  }),
 
  // Two stars matches slashes as well 
  rut.get('/file/**', function (reqresnextfilename) {
    res.end('file: ' + filename);
  }),
 
  // Or use a RegExp 
  rut.get(/^\/page\/(\d+)$/, function (reqresnextpageNumber) {
    res.end('page number: ' + pageNumber);
  })
)).listen();

Inspired by https://github.com/laughinghan/choreographer.