let express = require("express"); let path = require("path"); let cookieParser = require("cookie-parser"); let logger = require("morgan"); const session = require("express-session"); const error = require("./routes/utils/error"); let config = process.env.NODE_ENV === "test" ? {} : require("./config/config.json"); let indexRouter = require("./routes/index"); const loginRouter = require("./routes/login"); const edtRouter = require("./routes/edt"); const marksRouter = require("./routes/marks"); const registerRouter = require("./routes/register"); const viescolRouter = require("./routes/viescol"); const profilRouter = require("./routes/profil"); let app = express(); const sessionMiddleware = session({ secret: process.env.NODE_ENV === "test" ? "Keyboard Cat" : config.secret }); // view engine setup app.set("views", path.join(__dirname, "views")); app.set("view engine", "pug"); app.set("sessionMiddleware", sessionMiddleware); app.set("config", config); app.use(logger("dev")); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, "public"))); app.use(sessionMiddleware); app.use((req, res, next) => { res.locals.session = req.session; next(); }); app.use("/", indexRouter); app.use("/login", loginRouter); app.use("/email", require("./routes/email")); app.use("/edt", edtRouter); app.use("/marks", marksRouter); app.use('/register', registerRouter); app.use('/viescol', viescolRouter); app.use('/profil', profilRouter); // catch 404 and forward to error handler app.use((req, res) => { return error(req, res, "Page not found", 404); }); // error handler app.use((err, req, res) => { // 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"); }); module.exports = app;