Versie module 1 van 26-7

This commit is contained in:
2026-07-26 22:18:52 +02:00
commit 26a820b41a
39 changed files with 3663 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
module.exports = {
appName: "PantryHub",
port: process.env.PORT || 3000,
env: process.env.NODE_ENV,
database: process.env.DATABASE,
sessionSecret: process.env.SESSION_SECRET
};
+15
View File
@@ -0,0 +1,15 @@
const Database = require("better-sqlite3");
const path = require("path");
const databaseFile = path.join(
__dirname,
"..",
process.env.DATABASE || "database.sqlite"
);
const db = new Database(databaseFile);
db.pragma("journal_mode = WAL");
db.pragma("foreign_keys = ON");
module.exports = db;
+93
View File
@@ -0,0 +1,93 @@
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;
};
+27
View File
@@ -0,0 +1,27 @@
const session = require("express-session");
const BetterSqlite3Store = require("better-sqlite3-session-store")(session);
const Database = require("better-sqlite3");
const db = new Database("sessions.sqlite");
module.exports = session({
store: new BetterSqlite3Store({
client: db,
expired: {
clear: true,
intervalMs: 900000
}
}),
secret: process.env.SESSION_SECRET,
resave: false,
saveUninitialized: false,
cookie: {
maxAge: 1000 * 60 * 60 * 24 * 30
}
});