Rest

The rest middleware provides a RESTful routing api similar to that of Sinatra and Express.

var userRoutes = {
    get: {
        '/users/(all.:format?)?': function(req, res) {
            // populates req.format
            // ex:
            //   GET /users
            //   GET /users/all
            //   GET /users/all.json
            //   GET /users/all.xml
        },
        '/user/:id.:format?': function(req, res, params) {
            // populates req.format
            // populates params.id
            // ex:
            //   GET /user/5
            //   GET /user/5.json
            //   GET /user/5.xml
        }
    },
    put: {
        '/user/:id': function(req, res, params) {
            // populates params.id
            // ex:
            //   PUT /user/2
        }
    },
    del: {
        '/user/:id/file/*': function(req, res, params) {
           // populates params.id
           // populates params.splat[0]
           // ex:
           //   DELETE /user/4/file/javascripts/jquery.js
           //   DELETE /user/4/file/style.css
        }    
    }
};

connect.createServer([
    { provider: 'rest', routes: userRoutes }
]);

Those of you looking for PUT and DELETE support may want to take a look at the method-override middleware.