const express = require("express"); const helmet = require("helmet"); const compression = require("compression"); const morgan = require("morgan"); const cookieParser = require("cookie-parser"); const path = require("path"); const expressLayouts = require("express-ejs-layouts"); const flash = require("connect-flash"); const userMiddleware = require("../middleware/user"); const session = require("./session"); module.exports = () => { const app = express(); app.set("view engine", "ejs"); app.set( "views", path.join(__dirname, "../views") ); app.use(expressLayouts); app.set( "layout", "layouts/main" ); app.use( helmet({ contentSecurityPolicy: false }) ); app.use(compression()); app.use(morgan("dev")); app.use(cookieParser()); app.use( express.urlencoded({ extended: true }) ); app.use(express.json()); app.use(session); app.use(userMiddleware); app.use(flash()); app.use( express.static( path.join(__dirname, "../public") ) ); app.use( "/", require("../routes/auth") ); app.use( "/", require("../routes/web") ); app.use((req, res) => { res.status(404) .render("errors/404"); }); return app; };