TwoToc code
[YouAndWeb_TwoToc] / server / app.js
1 /**
2  * Main application file
3  */
4
5 'use strict';
6
7 // Set default node environment to development
8 process.env.NODE_ENV = process.env.NODE_ENV || 'development';
9
10 var express = require('express');
11 var mongoose = require('mongoose');
12 var config = require('./config/environment');
13
14 // Connect to MongoDB
15 mongoose.connect(config.mongo.uri, config.mongo.options);
16 mongoose.connection.on('error', function(err) {
17   console.error('MongoDB connection error: ' + err);
18   process.exit(-1);
19 });
20
21 // Populate databases with sample data
22 if (config.seedDB) { require('./config/seed'); }
23
24 // Setup server
25 var app = express();
26 var server = require('http').createServer(app);
27 require('./config/express')(app);
28 require('./routes')(app);
29
30 // Start server
31 function startServer() {
32   server.listen(config.port, config.ip, function() {
33     console.log('Express server listening on %d, in %s mode', config.port, app.get('env'));
34   });
35 }
36
37 setImmediate(startServer);
38
39 // Expose app
40 exports = module.exports = app;