-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.js
93 lines (80 loc) · 1.84 KB
/
index.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
83
84
85
86
87
88
89
90
91
92
93
/**
* Import dei moduli di terze parti
*/
const express = require("express");
const mysql = require("mysql");
const path = require("path");
const dotenv = require("dotenv");
const cookieParser = require("cookie-parser");
const sessions = require("express-session");
var crypto = require("crypto");
/**
* Import dei moduli locali
*/
const loggerController = require('./controllers/logger')
/**
* Inizializzazione del logger di default
*/
log = loggerController.logger;
/**
* Configurazione del supporto ai segreti in variabili d'ambiente
* (doc: https://www.npmjs.com/package/dotenv)
*/
dotenv.config({
path: './configs/.env'
})
/**
* Definizione della directory per i contenuti statici
*/
const publicDirectory = path.join(__dirname, './public');
/**
* Inizializzazione expressjs
* (doc: https://expressjs.com/)
*/
const app = express();
/**
* Supporto alle pagine statiche nella publicDirectory
*/
app.use(express.static(publicDirectory));
/**
* Supporto al parsing di url e json
*/
app.use(express.urlencoded({
extended: false
}));
app.use(express.json());
/**
* Inizializzazione di HBS engine per il rendering delle viste
*/
app.set('view engine', 'hbs');
/**
* Definizione durata sessione: 30m in ms
*/
const oneSession = 1000 * 60 * 30;
/**
* Middleware per gestione della sessione
*/
var secret = crypto.randomBytes(32).toString('hex');
app.use(sessions({
secret: secret,
saveUninitialized: true,
cookie: {
maxAge: oneSession
},
resave: false
}));
app.use(cookieParser());
/**
* Definizione di partenza per rotte
* Reindirizzate ai file contenuti in /routes
*/
app.use('/', require("./routes/pages"));
app.use('/auth', require('./routes/auth'));
app.use('/blockchain', require('./routes/blockchain'));
/**
* Avvio
*/
app.listen(8888, () => {
console.log("Server started on port 8888");
log.system("Server Started");
});