-
Book Overview & Buying
-
Table Of Contents
Advanced Express Web Application Development
By :
Nconf is a configuration tool that we will use to create hierarchical/environment configuration files for our application. Let's install Nconf:
npm install nconf --save
The first thing we will do is to move the following hardcoded port number from our Express application into our configuration:
app.set('port', 3000);Let's create the module ./lib/configuration/index.js, which will allow us to to read configuration data from JSON files. We import the nconf module and define a constructor function, Config. We then load a configuration file based on the current environment and load the default configuration that holds non-environmental configuration data. We also define a function get(key), which accepts a key and returns a value. We will use this function to read configuration data:
var nconf = require('nconf');
function Config(){
nconf.argv().env("_");
var environment = nconf.get("NODE:ENV") || "development";
nconf.file(environment, "config/" + environment + ".json");
nconf.file("default", "config/default.json");
}
Config.prototype.get = function(key) {
return nconf.get(key);
};
module.exports = new Config();Let's write some configuration for our application. Add the following default configuration to ./config/default.json; this will be shared amongst all environments:
{
"application": {
"name": "vision"
}
}Now add the following configuration to the development, test, and coverage config files: ./config/development.json, ./config/test.json, and ./config/coverage.json.
{
"express": {
"port": 3000
}
}Let's change our Express server ./lib/express/index.js so that it reads express:port from configuration:
var express = require('express')
, http = require('http')
, config = require('../configuration')
, app = express();
app.set('port', config.get("express:port"));
app.get('/hearbeat', function(req, res){
res.json(200, 'OK');
});
http.createServer(app).listen(app.get('port'));
module.exports = app;
Change the font size
Change margin width
Change background colour