-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathapp.js
80 lines (69 loc) · 1.94 KB
/
app.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 express = require('express'),
app = express(),
http = require('http'),
server = http.createServer(app),
path = require('path'),
helmet = require('helmet'),
jobHandler = require('./jobHandler'),
io = require('socket.io').listen(server);
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger());
app.use(helmet.xframe());
app.use(helmet.iexss());
app.use(helmet.contentTypeOptions());
app.use(helmet.cacheControl());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({
secret: "notagoodsecret",
cookie: {httpOnly: true, secure: true}
}));
app.use(express.csrf());
app.use(function (req, res, next) {
res.locals.csrftoken = req.session._csrf;
next();
});
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
app.get('/', function(req, res) {
res.render('index',
{ title: 'Jobs',
jobArray: jobHandler.jobs
}
);
});
app.get('/detail/:id', function( req, res ) {
if( req.params.id >= jobHandler.jobs.length ) {
res.redirect('/');
} else {
res.render( 'detail', { title: "Job's details", job: jobHandler.jobs[ req.params.id ] } );
}
});
app.get('/update', function( req, res ) {
jobHandler.updateJobs();
function goHome() { res.redirect('/'); }
setTimeout(goHome, 1000);
});
process.on('uncaughtException', function(err) {
console.error(err.stack);
});
jobHandler.setCallback( broadcastNews );
jobHandler.updateJobs();
server.listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
io.set('log level', 1); // reduce logging
//process.setuid(config.uid)
//process.setgid(config.gid)
});
function broadcastNews( data ) {
io.sockets.emit( 'news', data );
}