-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
82 lines (68 loc) · 2.29 KB
/
app.js
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const express = require('express');
const session = require("cookie-session");
const app = express();
// dotenv
require('dotenv').config();
const port = process.env.PORT || 8181;
// Disble X-Powered-By header
app.disable('x-powered-by')
// EJS for rendering pages
app.set("view engine", "ejs")
// EJS Layouts
const expressEjsLayouts = require("express-ejs-layouts");
app.use(expressEjsLayouts);
app.set("layout", "layouts/header")
app.use('/upload', express.static('upload'));
// cookie-session
app.use(session({
secret: process.env.SESSION_KEY,
resave: false,
saveUninitialized: false,
cookie: {
maxAge: 24 * 60 * 60 * 1000,
secure: true,
httpOnly: true,
sameSite: 'strict',
}
// name: 'session',
// keys: ['key1', 'key2'],
// maxAge: 24 * 60 * 60 * 1000, // 24 hours
// domain: '.yourdomain.com', // Include leading dot for subdomains
// path: '/', // Root path
// secure: true, // Only send cookies over HTTPS
// httpOnly: true, // Prevent client-side access to
})
)
app.use((req, res, next) => {
res.locals.globalSession = req.session
next();
})
// file upload
const fileUpload = require("express-fileupload");
app.use(fileUpload())
// middlewares
const login = require("./middlewares/auth.js")
const customerAccess = require("./middlewares/customer.js")
const adminAccess = require("./middlewares/admin.js")
// routes
const pathes = require ("./routes/path.js");
const auth = require ("./routes/auth.js");
const admin = require ("./routes/admin.js");
const customer = require ("./routes/customer.js");
const user = require ("./routes/user.js");
const review = require ("./routes/review.js");
const invitation = require ("./routes/invitation.js");
app.use("/", pathes);
app.use("/auth", auth);
app.use("/invitation", invitation)
app.use("/admin", adminAccess, admin)
app.use("/customer", customerAccess, customer)
app.use("/user", login, user)
app.use("/review", login, review)
// Middleware to handle 404 errors
app.use((req, res, next) => {
res.status(404).render('404', { layout: 'layouts/pagesheader', url: req.originalUrl, active:"404" });
});
app.listen(port, ()=>{
console.log(`Application is running on port ${port}`);
})