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.
blackout21/app.js

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;