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 /greet
:
express = require 'express'dispatch = require 'express-dispatch' controllers = test: ExampleController routes = 'get /greet': 'example.greet' app = expressdispatchregisterappcontrollersroutesapplisten9999
Now, when someone GETs /greet
, a new instance of ExampleController
will be created, and its greet()
function
will be called with the arguments bound by name to query string parameters.
$ curl -XGET http://127.0.0.1:9999/greet?name=Nate
Hello, Nate!
$
This also works with POSTs. If we changed our route to:
routes =
'post /greet': 'example.greet'
Then we could do this:
$ curl -XPOST http://127.0.0.1:9999/greet -d 'name=Nate'
Hello, Nate!
$
(Note that this requires using the bodyParser
express middleware.)
For more information, check out the examples and tests.