// Load WebServer import { default as express } from "express"; // Load Templating Engine import { default as nunjucks } from "nunjucks"; import { router } from "express-file-routing" import sessions from "express-session"; // Initialize WebServer const expressApp = express(); const expressPort = 3000; // Configure Templating Engine nunjucks.configure('./', { autoescape: false, express: expressApp, noCache: true }); // Enable Express Sessions expressApp.use(sessions({ secret: 'keyboard cat', resave: false, rolling: true, saveUninitialized: false, cookie: { secure: false, maxAge: 1800 * 1000, httpOnly: true } })) // Enable Cross Origins expressApp.use((req, res, next) => { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE"); res.header("Access-Control-Allow-Headers", "Content-Type, Authorization"); next(); }); // Mount Middlewares to WebServer expressApp.use(express.urlencoded()); expressApp.use(express.json()); expressApp.use(express.static('./assets/')) expressApp.use((request, response, next) => { request.isLoginCompleted = () => { if (typeof request.session.login == 'object' && request.session.login.completed) { return true; } else { return false; } } next(); }) expressApp.use("/", await router()) // Server starten expressApp.listen(expressPort, () => { console.log(`Server is listening on port ${expressPort}`); });