-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
executable file
·80 lines (66 loc) · 1.99 KB
/
server.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
var cluster = require('cluster')
, cores = process.env.CPU_CORES || 4
;
if (cluster.isMaster && !module.parent) {
for (var i = 0; i < cores; i++)
cluster.fork();
} else {
// new relic
if (process.env.NEW_RELIC_LICENSE_KEY) {
require('newrelic');
}
var express = require('express')
, http = require('http')
, path = require('path')
;
var app = module.exports = express();
// assets
app.use(express.compress());
require('./config/assets')(app);
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.cookieSession({ secret: '_not_today_signup_16825abd2de10e49a0b3e33396920e3b' }));
// csrf - unless testing
if ('test' !== app.get('env')) {
app.use(express.csrf());
app.use(function (req, res, next) {
res.locals.token = req.csrfToken();
res.cookie('XSRF-TOKEN', req.csrfToken());
next();
});
}
// set hostname (used for Facebook image URL)
app.use(function (req, res, next) {
var host = process.env.HOST_NAME || req.headers.host || 'www.ntc.io';
res.locals.host = 'http://' + host;
next();
});
// config
require('./config/env')(app, express);
// include any custom middleware before this app.router
app.use(app.router);
// static files
app.use(express.static(path.join(__dirname, 'public')));
// global helpers
require('./lib/helpers')(app);
app.locals.errors = {};
app.locals.message = {};
// basic routes
require('./config/routes')(app);
// features
app.use(require('./lib/signup'));
app.use(require('./lib/donate'));
app.use(require('./lib/share'));
// start server
if (!module.parent) {
http.createServer(app).listen(app.get('port'), function () {
console.log('Server listening on port ' + app.get('port'));
});
}
}