-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
42 lines (36 loc) · 1.27 KB
/
main.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
/*eslint-env node*/
var express = require("express");
var session = require("express-session");
var logger = require("morgan");
var routing = require("./server/routing");
var argv = require("yargs").usage("Usage: $0 [options]")
.alias("p", "port")
.nargs("p", 1)
.describe("p", "Port number to run on. By default, the PORT environment variable will be used, or if that is not set, the default is 3000.")
.string("p")
.boolean("e")
.alias("e", "emulate")
.describe("e", "Emulate the behavior of the Perl 1.0 server by serving .cgi as well")
.help("h")
.alias("h", "help")
.describe("h", "Print this help screen")
.epilog("Daniel Szeredi (C) 2015")
.argv;
/* ----------------------------------------------- */
var server = express();
server.use(logger("dev"));
server.use(express.static("public", {
extensions: ["html"]
}));
server.use(session({secret: "keyboard cat"}));
server.use(function(req, res, next){
if(req.query && req.query.sourceurl){
req.query.sourceurl = decodeURIComponent(req.query.sourceurl);
}
next();
});
routing.route(server, argv.e);
var port = argv.p || process.env.PORT || 3000;
module.exports = server.listen(parseInt(port, 10), function(err, res){
console.log("Listening on " + port + ".");
});