@@ -9,8 +9,27 @@ var express = require('express')
9
9
, config = require ( './config' )
10
10
, app = express ( ) ;
11
11
12
- global . io = require ( 'socket.io' ) . listen ( app . listen ( config . port ) ) ;
12
+ /**
13
+ * Source: http://stackoverflow.com/a/7965071
14
+ */
15
+ function mergeRecursive ( obj1 , obj2 ) {
16
+ for ( var p in obj2 ) {
17
+ if ( obj2 . hasOwnProperty ( p ) ) {
18
+ obj1 [ p ] = ( typeof obj2 [ p ] === 'object' ) ? mergeRecursive ( obj1 [ p ] , obj2 [ p ] ) : obj2 [ p ] ;
19
+ }
20
+ }
21
+ return obj1 ;
22
+ }
23
+
24
+ // set config by environment
25
+ if ( process . env . ENVIRONMENT != 'default' ) {
26
+ app . config = mergeRecursive ( config . default , config [ process . env . ENVIRONMENT ] ) ;
27
+ } else {
28
+ app . config = config . default ;
29
+ }
13
30
31
+ // setup socket io
32
+ global . io = require ( 'socket.io' ) . listen ( app . listen ( app . config . server . port ) ) ;
14
33
io . configure ( function ( ) {
15
34
io . set ( 'transports' , [ 'websocket' , 'xhr-polling' ] ) ;
16
35
io . set ( 'log level' , config . log_level ) ;
@@ -24,13 +43,13 @@ io.sockets.on('connection', function (socket)
24
43
25
44
// db connect
26
45
var db = require ( 'mongoose' ) ;
27
- db . connect ( config . db . service + '://' + config . db . host + '/' + config . db . database ) ;
46
+ db . connect ( app . config . db . service + '://' + app . config . db . host + '/' + app . config . db . database ) ;
28
47
29
48
app . configure ( function ( ) {
30
49
app . set ( 'views' , __dirname + '/views' ) ;
31
50
app . set ( 'view engine' , 'ejs' ) ;
32
51
app . set ( 'view options' , { layout :true , pretty : true } ) ;
33
- app . set ( 'config' , config ) ;
52
+ app . set ( 'config' , app . config ) ;
34
53
app . set ( 'db' , db ) ;
35
54
app . use ( express . favicon ( ) ) ;
36
55
app . use ( express . logger ( 'dev' ) ) ;
0 commit comments