76 lines
1.4 KiB
JavaScript
76 lines
1.4 KiB
JavaScript
'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');
|
|
}
|