Expressjs Configuration
How can we handle configuration?
As you know, every node script is run as a console program. So, we can easily send command line arguments which will define the current environment. I wrapped that part in a separate module in order to write a test for it later. Here is the /config/index.js file:
var config = {
local: {
mode: 'local',
port: 3000
},
staging: {
mode: 'staging',
port: 4000
},
production: {
mode: 'production',
port: 5000
}
}
module.exports = function(mode) {
return config[mode || process.argv[2] || 'local'] || config.local;
}
and in app.js:
var config = require('./config')();
...
http.createServer(app).listen(config.port, function(){
console.log('Expressver listening on port ' + config.port);
});
To switch between the configurations, just add the environment at the end. For example:
node app.js staging
page revision: 0, last edited: 08 Oct 2015 06:56