move 'static' routes into own module

This commit is contained in:
booo 2012-02-08 14:21:24 +01:00
parent 38354f6ae5
commit b8c0bb2ea2
2 changed files with 59 additions and 48 deletions

55
node/routes/static.js Normal file
View file

@ -0,0 +1,55 @@
var path = require('path');
module.exports = function(app)
{
app.get('/static/*', function(req, res)
{
var filePath = path.normalize(__dirname + "/../.." +
req.url.replace(/\.\./g, '').split("?")[0]);
res.sendfile(filePath, { maxAge: app.maxAge });
});
//serve pad.html under /p
app.get('/p/:pad', function(req, res, next)
{
var filePath = path.normalize(__dirname + "/../../static/pad.html");
res.sendfile(filePath, { maxAge: app.maxAge });
});
//serve timeslider.html under /p/$padname/timeslider
app.get('/p/:pad/timeslider', function(req, res, next)
{
var filePath = path.normalize(__dirname + "/../../static/timeslider.html");
res.sendfile(filePath, { maxAge: app.maxAge });
});
//serve index.html under /
app.get('/', function(req, res)
{
var filePath = path.normalize(__dirname + "/../../static/index.html");
res.sendfile(filePath, { maxAge: app.maxAge });
});
//serve robots.txt
app.get('/robots.txt', function(req, res)
{
var filePath = path.normalize(__dirname + "/../../static/robots.txt");
res.sendfile(filePath, { maxAge: app.maxAge });
});
//serve favicon.ico
app.get('/favicon.ico', function(req, res)
{
var filePath = path.normalize(__dirname + "/../../static/custom/favicon.ico");
res.sendfile(filePath, { maxAge: app.maxAge }, function(err)
{
//there is no custom favicon, send the default favicon
if(err)
{
filePath = path.normalize(__dirname + "/../../static/favicon.ico");
res.sendfile(filePath, { maxAge: app.maxAge });
}
});
});
};

View file

@ -79,6 +79,8 @@ async.waterfall([
//create server //create server
var app = express.createServer(); var app = express.createServer();
app.maxAge = exports.maxAge;
app.use(function (req, res, next) { app.use(function (req, res, next) {
res.header("Server", serverName); res.header("Server", serverName);
next(); next();
@ -147,12 +149,6 @@ async.waterfall([
res.write(minify.requireDefinition()); res.write(minify.requireDefinition());
res.end(); res.end();
}); });
app.get('/static/*', function(req, res)
{
var filePath = path.normalize(__dirname + "/.." +
req.url.replace(/\.\./g, '').split("?")[0]);
res.sendfile(filePath, { maxAge: exports.maxAge });
});
//serve minified files //serve minified files
app.get('/minified/:filename', minify.minifyJS); app.get('/minified/:filename', minify.minifyJS);
@ -254,19 +250,6 @@ async.waterfall([
}); });
}); });
//serve pad.html under /p
app.get('/p/:pad', function(req, res, next)
{
var filePath = path.normalize(__dirname + "/../static/pad.html");
res.sendfile(filePath, { maxAge: exports.maxAge });
});
//serve timeslider.html under /p/$padname/timeslider
app.get('/p/:pad/timeslider', function(req, res, next)
{
var filePath = path.normalize(__dirname + "/../static/timeslider.html");
res.sendfile(filePath, { maxAge: exports.maxAge });
});
//serve timeslider.html under /p/$padname/timeslider //serve timeslider.html under /p/$padname/timeslider
app.get('/p/:pad/:rev?/export/:type', function(req, res, next) app.get('/p/:pad/:rev?/export/:type', function(req, res, next)
@ -355,34 +338,7 @@ async.waterfall([
require('./routes/debug')(app); require('./routes/debug')(app);
//serve index.html under / require('./routes/static')(app);
app.get('/', function(req, res)
{
var filePath = path.normalize(__dirname + "/../static/index.html");
res.sendfile(filePath, { maxAge: exports.maxAge });
});
//serve robots.txt
app.get('/robots.txt', function(req, res)
{
var filePath = path.normalize(__dirname + "/../static/robots.txt");
res.sendfile(filePath, { maxAge: exports.maxAge });
});
//serve favicon.ico
app.get('/favicon.ico', function(req, res)
{
var filePath = path.normalize(__dirname + "/../static/custom/favicon.ico");
res.sendfile(filePath, { maxAge: exports.maxAge }, function(err)
{
//there is no custom favicon, send the default favicon
if(err)
{
filePath = path.normalize(__dirname + "/../static/favicon.ico");
res.sendfile(filePath, { maxAge: exports.maxAge });
}
});
});
//let the server listen //let the server listen
app.listen(settings.port, settings.ip); app.listen(settings.port, settings.ip);