Skip to content

Commit 4a85621

Browse files
author
Evgheni C.
committed
Merge pull request #9 from NetCrafters/feature-env-overrides
Add environment overrides.
2 parents ea25f08 + 1a08456 commit 4a85621

File tree

2 files changed

+37
-9
lines changed

2 files changed

+37
-9
lines changed

app.js

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,27 @@ var express = require('express')
99
, config = require('./config')
1010
, app = express();
1111

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+
}
1330

31+
// setup socket io
32+
global.io = require('socket.io').listen(app.listen( app.config.server.port ));
1433
io.configure(function () {
1534
io.set('transports', ['websocket', 'xhr-polling']);
1635
io.set('log level', config.log_level);
@@ -24,13 +43,13 @@ io.sockets.on('connection', function (socket)
2443

2544
// db connect
2645
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);
2847

2948
app.configure(function() {
3049
app.set('views', __dirname + '/views');
3150
app.set('view engine', 'ejs');
3251
app.set('view options', { layout:true, pretty: true });
33-
app.set('config', config);
52+
app.set('config', app.config);
3453
app.set('db', db);
3554
app.use(express.favicon());
3655
app.use(express.logger('dev'));

config.json

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
{
2-
"log_level": 0,
3-
"port": 3000,
4-
"db": {
5-
"service": "mongodb",
6-
"host": "localhost",
7-
"database": "search_for_404_v4"
2+
"default": {
3+
"log_level": 0,
4+
"server": {
5+
"scheme": "http",
6+
"host": "localhost",
7+
"port": 3000
8+
},
9+
"db": {
10+
"service": "mongodb",
11+
"host": "localhost",
12+
"database": "search_for_404_v4"
13+
}
14+
},
15+
"development": {
16+
"log_level": 1
817
}
918
}

0 commit comments

Comments
 (0)