-
Notifications
You must be signed in to change notification settings - Fork 5
/
app.js
70 lines (56 loc) · 1.56 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
// Koa middle ware.
var koa = require('koa'),
hbs = require('koa-hbs'),
router = require('koa-router'),
serve = require('koa-static-folder'),
bodyParser = require('koa-bodyparser'),
session = require('koa-generic-session'),
redisStorage = require('koa-redis');
//for passport
require('./models/auth');
var passport = require('koa-passport');
var app = koa();
exports.app = app;
exports.passport = passport;
exports.hbs = hbs;
app.use(bodyParser());
app.use(serve('./assets'));
app.use(hbs.middleware({
viewPath: __dirname + '/views',
layoutsPath: __dirname + '/views/layouts',
partialsPath: __dirname + '/views/partials',
defaultLayout: 'main'
}));
// Passport binding.
var config = require('./config.json');
app.keys = config.app.data.session_keys;
app.use(session({
cookie: {maxAge: 1000 * 60 * 60 * 24},
store : redisStorage()
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(router(app));
// Adds response-time to headers.
var requestTime = function(headerName){
return function *(next){
var start = new Date();
yield next;
var end = new Date();
var ms = end - start;
this.set(headerName, ms + "ms");
}
}
app.use(requestTime('Reponse-time'));
//logging
var log = require("./helpers/common.js").log;
// Let's do some handlebars!
require('./helpers/handlebars');
// Now we bind routes.
require('./routes');
var port = config.site.port;
log.info("Bloodhound is now running on port " + port);
app.listen(port);
process.on('SIGINT', function() {
process.exit();
});