hapi-routebuilder
Simple declarative route configuration for Hapi without leaky abstractions.
Motivation
Hapi embraces an imperative approach to configuring routes. This means that registering multiple routes requires multiple method calls, so that one ends up with a file that may look something to the effect of:
var Hapi = ;var server = ;server; server;server;server;server// ...and so on
This works fine, but some people prefer a declarative approach for the sake of tidiness, readability, or organization. The declarative approach to the above code would read like the following:
var routes = get: '/profile': handler: fnOne config: validate: /* validation rules here */ '/about': aboutFn post: '/login': loginFn "get,post": '/logout': logoutFn ;
While hapi doesn't provide any mechanism to work with such an object (you could export a plugin from your route files, but, ugh) this library does.
Example
var Hapi = ;var routeBuilder = ;var Hapi = ;var server = ;server; // this would typically be exported from a routes.js// file somewhere in your codevar routes = get: '/profile': handler: fnOne config: validate: /* validation rules here */ '/about': aboutFn post: '/login': loginFn "get,post": '/logout': logoutFn ; ;
Release History
- 2014-12-31 - v0.1.0
- Initial release