Voegt boodschappenlijsten, productbeheer, realtime synchronisatie en browsercache-updates toe. Herstelt login- en sessiegedrag en maakt database-seeding herhaalbaar.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
118 lines
2.0 KiB
JavaScript
118 lines
2.0 KiB
JavaScript
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(flash());
|
|
|
|
app.use(userMiddleware);
|
|
|
|
app.use((req, res, next) => {
|
|
res.set("X-PantryHub-Worktree", __dirname);
|
|
res.locals.user = req.user || null;
|
|
res.locals.success = req.flash("success");
|
|
res.locals.error = req.flash("error");
|
|
res.locals.info = req.flash("info");
|
|
res.locals.warning = req.flash("warning");
|
|
res.locals.title = "PantryHub";
|
|
next();
|
|
});
|
|
|
|
app.get("/__version", (req, res) => {
|
|
res.set("Cache-Control", "no-store");
|
|
res.json({
|
|
app: "PantryHub",
|
|
root: path.join(__dirname, ".."),
|
|
pid: process.pid
|
|
});
|
|
});
|
|
|
|
|
|
app.use(
|
|
express.static(
|
|
path.join(__dirname, "../public")
|
|
)
|
|
);
|
|
|
|
|
|
app.use(
|
|
"/api",
|
|
require("../routes/api")
|
|
);
|
|
|
|
app.use(
|
|
"/",
|
|
require("../routes/auth")
|
|
);
|
|
|
|
app.use(
|
|
"/",
|
|
require("../routes/web")
|
|
);
|
|
|
|
|
|
app.use((req, res) => {
|
|
|
|
res.status(404)
|
|
.render("errors/404");
|
|
|
|
});
|
|
|
|
|
|
return app;
|
|
|
|
}; |