iisnode-env v1.0.3
iisnode-env
iisnode-env is a zero-dependency module that loads environment variables from the <appSettings>-section of a web.config file into process.env.
Storing configuration in the environment separate from code is based on The Twelve-Factor App methodology.
When hosting a node app on iisnode (for instance in an Azure WebApp), iisnode automatically provides appSettings from web.config via process.env.
As such iisnode-env does nothing if process.env.IISNODE_VERSION is defined and aims only to simplify the move between running an app inside and outside of iisnode.
Install
npm i -S iisnode-envUsage
As early as possible in your application, require and configure iisnode-env
require('iisnode-env').config();
// or use the alias
require('iisnode-env').load();The module will do nothing if process.env.IISNODE_VERSION is defined.
In that case iisnode will have already loaded the variables.
Config
Alias: load
config will read your web.config file, parse the contents, assign it to process.env and return the loaded content or an error key if it failed.
const result = require('iisnode-env').config()
if(result.error) {
throw result.error
}
console.log(result.parsed)If process.env.IISNODE_VERSION is defined, config returns an empty object.
You can additionally, pass options to config
Options
Path
Default: web.config
require('iisnode-env').config({ path: '/custom/path/to/web.config' })Encoding
Default: utf8
require('iisnode-env').config({ encoding: 'base64' })Limits
This is i very simple module and as such there is no support (at this time) for doing this:
<appSettings file="relative file name">
</appSettings>We only get the values we find inside of the <appSettings>-section.
Credits
Inspired by and based on