summaryrefslogtreecommitdiff
path: root/app.js
blob: 8228e8223193b79f0eb98fdd0bf62069c19927d6 (plain)
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
#!/usr/bin/env node
'use strict';
var config = require('./config');
var express = require('express');
var app = express();
var glob = require('glob');
var mongoose = require('mongoose');
var session = require('express-session');
var MongoStore = require('connect-mongo')(express);


// set up database connection
mongoose.connect(config.dburi);
mongoose.connection.on('error', function(err) {
    console.error('Database connection failed', err);
    process.exit(1);
});
//mongoose.set('debug', true);


// persistence (for sessions)
app.use(session({
    store: new MongoStore({ mongooseConnection: mongoose.connection }),
    name: 'rvssid',
    saveUninitialized: false,
    // TODO detect whether over SSL?
    // https://github.com/expressjs/session#cookie-options
    //cookie: { secure: true },
}));


// autoload all routes, making it available on a common prefix.
var router = express.Router();
glob.sync('./routes/**/*.js').forEach(function(file) {
    require(file)(app, router);
});
app.use('/api/v1', router);


var server = app.listen(config.port, function() {
    var host = server.address().address;
    var port = server.address().port;

    if (/:/.test(host)) {
        // IPv6 literals
        host = '[' + host + ']';
    }

    console.log('http://%s:%d', host, port);
});