turned the redirect thing into a loadable host_redirect middleware

This commit is contained in:
2011-12-25 09:51:42 +00:00
parent 533cf0822b
commit 349e9eaef6
4 changed files with 30 additions and 14 deletions

12
app.js
View File

@@ -9,13 +9,6 @@
app.set('views', __dirname + '/views');
app.set('view engine', 'coffee');
app.register('.coffee', require('coffeekup').adapters.express);
app.use(function(req, res, next) {
if (req.header('Host') === 'www.heartb.it') {
return res.redirect('http://heartb.it/');
} else {
return next();
}
});
app.use(express.bodyParser());
app.use(express.methodOverride());
return app.use(express.static(__dirname + '/public'));
@@ -29,7 +22,10 @@
});
app.configure('production', function() {
return app.use(express.errorHandler);
app.use(express.errorHandler());
return app.use(require('./middleware/host_redirect')({
"www.heartb.it": "http://heartb.it"
}));
});
app.get('/', function(req, res) {

View File

@@ -0,0 +1,16 @@
(function() {
module.exports = function(redirect_map) {
if (redirect_map == null) redirect_map = {};
return function(req, res, next) {
var host;
host = req.header('Host');
if (redirect_map[host]) {
return res.redirect(redirect_map[host]);
} else {
return next();
}
};
};
}).call(this);

View File

@@ -8,11 +8,6 @@ app.configure ->
app.set 'views', __dirname + '/views'
app.set 'view engine', 'coffee'
app.register '.coffee', require('coffeekup').adapters.express
app.use (req, res, next) ->
if req.header('Host') == 'www.heartb.it'
res.redirect('http://heartb.it/')
else
next()
app.use express.bodyParser()
app.use express.methodOverride()
app.use express.static(__dirname + '/public')
@@ -21,7 +16,9 @@ app.configure 'development', ->
app.use express.errorHandler(dumpExceptions: true, showStack: true)
app.configure 'production', ->
app.use express.errorHandler
app.use express.errorHandler()
app.use require('./middleware/host_redirect')
"www.heartb.it": "http://heartb.it"
# Routes

View File

@@ -0,0 +1,7 @@
module.exports = (redirect_map = {}) ->
(req, res, next) ->
host = req.header('Host')
if redirect_map[host]
res.redirect(redirect_map[host])
else
next()