forked from sharesci/sharesci
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
executable file
·42 lines (37 loc) · 1000 Bytes
/
server.js
File metadata and controls
executable file
·42 lines (37 loc) · 1000 Bytes
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
const
express = require('express'),
express_session = require('express-session'),
compression = require('compression'),
https = require('https'),
http = require('http'),
tls_options = require('./util/tls-options'),
rootRouter = require('./routes/index');
const app = express();
var https_options = tls_options;
var https_ok = tls_options['isValid'];
app.use('/', (req, res, next) => {
if(https_ok && !req.secure) {
return res.redirect(['https://', req.get('Host'), req.url].join(''));
}
next();
});
app.use(compression());
app.use(express_session({
secret: require('crypto').randomBytes(64).toString('base64'),
resave: false,
saveUninitialized: false,
httpOnly: true,
secure: true,
ephemeral: true,
cookie: { maxAge: 16*60*60*1000 }
}));
app.use('/', rootRouter);
app.use('/', express.static(__dirname + '/client/dist'));
http.createServer(app).listen(80);
if (https_ok) {
try {
https.createServer(https_options, app).listen(443);
} catch (err) {
https_ok = false;
}
}