You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
let express = require('express');
|
|
let createError = require("http-errors");
|
|
let path = require('path');
|
|
let expressLayout = require('express-layout');
|
|
let hbs = require('hbs');
|
|
let compression = require("compression");
|
|
|
|
let app = express();
|
|
|
|
// Configure Views
|
|
app.set('views', path.join(__dirname, 'views'));
|
|
app.engine('hbs', hbs.__express);
|
|
app.set('view engine', 'hbs');
|
|
app.set('layouts', './views');
|
|
app.set('layout', 'html');
|
|
app.set('trust proxy', 'loopback');
|
|
|
|
app.use(expressLayout());
|
|
app.use(compression());
|
|
|
|
/* Routes */
|
|
|
|
function sendFile(file) {
|
|
return (req, res) => res.sendFile(__dirname + "/" + file);
|
|
}
|
|
|
|
function sendStatic(file) {
|
|
return sendFile("static/" + file + ".htm");
|
|
}
|
|
|
|
app.route("/favicon.png").get(sendFile("black.png"));
|
|
app.route("/impressum").get(sendStatic("impressum"));
|
|
app.route(/.*/).get(sendStatic("index")).post(sendStatic("index"));
|
|
app.use((req, res) => res.sendStatus(423));
|
|
|
|
// catch 404 and forward to error handler
|
|
app.use(function (req, res, next) {
|
|
next(createError(404));
|
|
});
|
|
|
|
// error handler
|
|
app.use(function (err, req, res, next) {
|
|
// set locals, only providing error in development
|
|
res.locals.message = err.message;
|
|
res.locals.error = req.app.get('env') === 'development' ? err : {};
|
|
|
|
// render the error page
|
|
res.status(err.status || 500);
|
|
res.render('error');
|
|
});
|
|
|
|
require("./prepare")(app);
|
|
|
|
module.exports = app;
|