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;