Configuration manager for node apps. Keep all your default settings on a json file, and override them per environment, using another file or environment variables.
| DISCLAIMER: Use https://github.com/DemocracyOS/dos-config, unless you want to customize default options.
npm i democracyos-config -S
1- Create defaults.json
file. It will define the schema of the config,
including default values and types it should have:
/config/defaults.json
{
"port": 3000,
"title": "My awesome app Defaults"
}
2- Environment specific overrides are optional, using {NODE_ENV}.json
or
development.json
as default:
/config/development.json
{
"title": "My awesome app on Development"
}
3- Only commit default values! You wouldn't want to commit any keys, etc.
/config/.gitignore
*.json
!defaults.json
4- Load your config, specify the path to where all the config files are located.
/config/index.js
module.exports = require('democracyos-config')({
path: __dirname
})
5- Use it:
And, in your /server.js
, or wherever:
var config = require('./config')
console.log(config.title) // My awesome app on Development
You can also define values using environment variables, this is the recommended
approach for production
.
mongoUrl
=> MONGO_URL
user.password
=> USER_PASSWORD
Arrays
s should be strings separated by commas.
"staff": ["mail@eg.com", "a@c.m"]
=> STAFF="mail@eg.com,a@c.m"
Boolean
s should be true
or false
as strings.
"rssEnabled": false
=> RSS_ENABLED="false"
Objects
s should be a JSON string.
"connectionData": {}
=> CONNECTION_DATA='{"ip": "127.0.0.1", "port": 45333}'
/lib/cast-string.js
npm run test