var express = require('express') , routes = require('./routes') , http = require('http'); var app = express(); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(urlgenerator); app.use(app.router); app.use(express.static(__dirname + '/public')); }); app.configure('development', function(){ app.use(express.errorHandler()); }); function urlgenerator(req, res, next) { var host = req.headers.host; res.urlgenerator = { departments: function() { return 'http://' + host + '/'; }, department: function(dept_no) { return 'http://' + host + '/department/' + dept_no; }, employees_in_department: function(dept_no) { return 'http://' + host + '/department/' + dept_no + '/employees'; }, employee: function(emp_no) { return 'http://' + host + '/employee/' + emp_no; } }; next(); } app.get('/', routes.departments); app.get('/department/:dept_no', routes.department); app.get('/department/:dept_no/employees', routes.employees_in_department); app.get('/employee/:emp_no', routes.employee); http.createServer(app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); });