Preview: app.js
Size: 1.88 KB
/var/www/idmc.bitkit.dk/httpdocs/app.js
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const pool = require("./db"); // Import the pool instead of a single connection
const session = require("express-session");
const MySQLStore = require("express-mysql-session")(session);
const { sessionSecretKey } = require("./constants");
const mmRouters = require("./routes/marketing-manager");
const adminRouters = require("./routes/admin");
const dmcRouters = require("./routes/dmc");
const sdRouters = require("./routes/sales-director");
const publicRouters = require("./routes/public-routes");
// Test database connection
pool.getConnection((err, connection) => {
if (err) {
console.error('Database connection failed:', err);
process.exit(1);
} else {
console.log('Database connected successfully.');
connection.release(); // Release the connection back to the pool
}
});
// Configure session store using express-mysql-session
const sessionStore = new MySQLStore(
{
expiration: 1000 * 60 * 60 * 24, // Session expiration time (milliseconds)
createDatabaseTable: true,
schema: {
tableName: "sessions",
columnNames: {
session_id: "session_id",
expires: "expires",
data: "data",
},
},
},
pool // Pass the pool to the session store
);
app.use(
session({
key: "IDMC",
secret: sessionSecretKey,
store: sessionStore,
resave: false,
saveUninitialized: false,
})
);
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static("public"));
app.use(publicRouters);
app.use(mmRouters);
app.use(adminRouters);
app.use(dmcRouters);
app.use(sdRouters);
// 404 Handler
app.use((req, res) => {
res.status(404).render("404", { message: "" });
});
// Start server
app.listen(3013, () => {
console.log('Server is running on port 3013');
});
Directory Contents
Dirs: 7 × Files: 12