controllers and parameter binding for express
This is a simple library that adds controller classes and parameter binding to express. It's really just a gimmick that I was tinkering with. I'm not sure if it's useful or even a remotely good idea.
Instead of just binding to a function, as is normal with express, dispatch lets you bind to a class and function.
Here's an example controller:
dispatch = require 'express-dispatch':@responsesend "Hello, !"module.exports = ExampleController
Dispatch lets you connect a route pattern (like
get /user/:userid or
post /users) to an action method on a controller.
Everything is connected up by name. Here's how we'd register our example controller to respond to GET requests at
express = require 'express'dispatch = require 'express-dispatch'controllers =test: ExampleControllerroutes ='get /greet': 'example.greet'app = expressdispatchregisterappcontrollersroutesapplisten9999
Now, when someone GETs
/greet, a new instance of
ExampleController will be created, and its
will be called with the arguments bound by name to query string parameters.
$ curl -XGETHello, Nate!$
This also works with POSTs. If we changed our route to:
routes ='post /greet': 'example.greet'
Then we could do this:
$ curl -XPOST -d 'name=Nate'Hello, Nate!$
(Note that this requires using the
bodyParser express middleware.)
For more information, check out the examples and tests.