forked from DBC201/rocket_dodge_server
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrocket_dodge_main.js
More file actions
90 lines (79 loc) · 2.31 KB
/
rocket_dodge_main.js
File metadata and controls
90 lines (79 loc) · 2.31 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
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
const path = require("path");
require("dotenv").config({path: path.join(__dirname, ".env.local")});
const argv = require("yargs")(process.argv.slice(2))
.option("no_https", {
description: "runs http only",
alias: "n",
type: "boolean",
default: false,
})
.option("no_redis", {
description: "does not enable redis",
alias: "r",
type: "boolean",
default: false
})
.help().alias("help", "h")
.parse();
const express = require("express");
const fs = require("fs");
const bodyParser = require('body-parser');
const session = require("express-session");
const useragent = require('express-useragent');
const app = express();
const routes = require(path.join(__dirname, "routes", "index"));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(useragent.express());
let session_parameter;
if (argv.no_redis){
session_parameter = {
secret: process.env.secret,
saveUninitialized: true,
resave: true
}
}else{
const redis = require('redis');
const redisClient = redis.createClient();
const RedisStore = require('connect-redis')(session);
session_parameter = {
secret: process.env.secret,
saveUninitialized: true,
resave: true,
store: new RedisStore({
client: redisClient
})
}
}
app.use(session(session_parameter));
app.set("view engine", "ejs");
app.use('/public', express.static(path.join(__dirname, 'public')));
const http_port = process.env.http_port;
const http = require("http");
let http_server;
function create_http_server(app, port) {
console.log("Running on port " + port);
return http.createServer(app).listen(port);
}
if (argv.no_https){
http_server = create_http_server(app, http_port);
} else {
const http_app = express(); //part below listens to http_port and redirects all traffic to https
http_server = create_http_server(http_app, http_port);
http_app.get("*", function (req, res) {
res.redirect("https://" + req.headers.host + req.url);
});
const https = require('https');
const https_port = process.env.https_port;
const credentials = {
key: fs.readFileSync(process.env.private_key_dir, 'utf8'),
cert: fs.readFileSync(process.env.certificate_dir, 'utf8')
};
const https_server = https.createServer(credentials, app).listen(https_port, function () {
console.log("Running on port " + https_port);
});
}
app.get("*", routes);
app.post("*", routes);