-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
55 lines (47 loc) · 1.52 KB
/
server.js
File metadata and controls
55 lines (47 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
if (process.env.NODE_ENV !== "production") {
require("dotenv").config(); // Load .env for this specific server if needed
}
const express = require("express");
const app = express();
const session = require("express-session");
const MongoStore = require("connect-mongo");
const atlas_url = process.env.ATLAS_DB; // Ensure this is available if using MongoStore
const store = MongoStore.create({
mongoUrl: atlas_url,
crypto: {
secret: process.env.SECRET,
},
touchAfter: 24 * 3600,
});
store.on("error", err => console.log("Session store error:", err));
app.use(
session({
store: store, // Use the created MongoStore
secret: process.env.SECRET, // Load from .env
resave: false,
saveUninitialized: true,
cookie: {
expires: new Date(Date.now() + 1000 * 60 * 60 * 24), // 24 hours
httpOnly: true,
secure: process.env.NODE_ENV === 'production', // Set secure based on environment
},
})
);
app.get("/session", (req, res) => {
let { name = "manjunath" } = req.query;
req.session.name = name;
console.log(`Setting session name to: ${req.session.name}`);
res.redirect("/ses");
});
app.get("/ses", (req, res) => {
const sessionName = req.session.name;
console.log(`Retrieving session name: ${sessionName}`);
if (sessionName) {
res.send(`Hello from session: ${sessionName}`);
} else {
res.send("Session name not found. Try accessing /session first.");
}
});
app.listen(3000, () => {
console.log('The test server is connected on port 3000');
});