var router = new Router()
.addRoute('#/search/', function(req,next){
console.group();
console.log('Matched /query/. Checking for query parameter' );
console.log('Using req.get("q")',req.get('q'));
console.log('Using req.get("missing_param","default value")',req.get("missing_param","default value"));
console.log(req.query);
console.groupEnd();
})
.addRoute('#/:username', function(req, next){
console.group();
console.log('Routed to user',req.params.username);
console.log('Can also use req.get(\'username\')',req.get('username'));
console.log(arguments);
console.groupEnd();
})
.route(/#\/foo\/bar\/?(.*)/i,function(req, next){
console.group();
console.log('Matched regexp path');
if(req.splats && req.splats[0]){
console.log(req.splats[0]);
}
console.log(arguments);
console.groupEnd();
})
.route('#/custom/*', function(req, next){
console.group();
console.log('Matched everything after /custom/' );
console.log(arguments);
if(req.hasNext){
next(new Error(),500);
}
console.groupEnd();
})
.route('#/custom/**', function(req, next){
console.group();
console.log('Matched everything after /custom/' );
console.log(arguments);
if(req.hasNext){
next(new Error(),500);
}
console.groupEnd();
})
.errors(404,function(){
console.group();
console.warn('404',arguments);
console.groupEnd();
})
.errors(500,function(){
console.group();
console.error('500',arguments);
console.groupEnd();
})
.before(function(req,next){
console.group();
console.log('Before',arguments);
if(req.href == '#/custom/error')
next(new Error('Before Errored'),403);
else
next();
console.groupEnd();
});