From cb07546d0b8ee390b258fdf55596f42e145daa61 Mon Sep 17 00:00:00 2001 From: Matthijs van Henten Date: Mon, 29 Jun 2015 23:17:28 +0000 Subject: [PATCH] adding convenient method for client-side routing --- node_modules/frontdoor/lib/section.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/node_modules/frontdoor/lib/section.js b/node_modules/frontdoor/lib/section.js index 2c03744e..bf65ef79 100644 --- a/node_modules/frontdoor/lib/section.js +++ b/node_modules/frontdoor/lib/section.js @@ -118,6 +118,25 @@ module.exports = function Section(name, description, types) { sections[name].push(section); }; + /** + * Sortcut for client-side routing without a `next` + * + * Allows you to omit the third argument, "next" and avoid special + * treatment in router.js (see "wrapHandler"). + * + * Has a variable number of argumnets: no need to wrap handlers in an array + */ + this.on = function( path, handler ){ + var middlewares = Array.prototype.slice.call( arguments, 1 ); + handler = middlewares.shift(); + + middlewares.unshift(function(req, res, next){ + handler( req, res, next ); + }); + + this._route( path, { method: "get" }, middlewares ); + }; + this._rootHandler = function(req, res) { this.handle(req, res, function(err) { if (err) {