'use strict' /** * Module dependencies. */ var escapeHtml = require('escape-html') var express = require('../../lib/express'); var verbose = process.env.NODE_ENV !== 'test' var app = module.exports = express(); app.map = function(a, route){ route = route || ''; for (var key in a) { switch (typeof a[key]) { // { '/path': { ... }} case 'object': app.map(a[key], route + key); break; // get: function(){ ... } case 'function': if (verbose) console.log('%s %s', key, route); app[key](route, a[key]); break; } } }; var users = { list: function(req, res){ res.send('user list'); }, get: function(req, res){ res.send('user ' + escapeHtml(req.params.uid)) }, delete: function(req, res){ res.send('delete users'); } }; var pets = { list: function(req, res){ res.send('user ' + escapeHtml(req.params.uid) + '\'s pets') }, delete: function(req, res){ res.send('delete ' + escapeHtml(req.params.uid) + '\'s pet ' + escapeHtml(req.params.pid)) } }; app.map({ '/users': { get: users.list, delete: users.delete, '/:uid': { get: users.get, '/pets': { get: pets.list, '/:pid': { delete: pets.delete } } } } }); /* istanbul ignore next */ if (!module.parent) { app.listen(3000); console.log('Express started on port 3000'); }