https://github.com/tolu/iisnode-env
Loads environment variables from appSettings in web.config.
https://github.com/tolu/iisnode-env
appsettings azure environment-variables iisnode nodejs
Last synced: 5 months ago
JSON representation
Loads environment variables from appSettings in web.config.
- Host: GitHub
- URL: https://github.com/tolu/iisnode-env
- Owner: tolu
- License: other
- Created: 2017-11-08T13:12:22.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-11-09T17:19:31.000Z (over 8 years ago)
- Last Synced: 2025-09-01T12:27:44.778Z (10 months ago)
- Topics: appsettings, azure, environment-variables, iisnode, nodejs
- Language: JavaScript
- Size: 12.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# iisnode-env
[](https://www.npmjs.com/package/iisnode-env) [](https://github.com/feross/standard)
`iisnode-env` is a zero-dependency module that loads environment variables from the ``-section of a `web.config` file into [`process.env`](https://nodejs.org/docs/latest/api/process.html#process_process_env).
Storing configuration in the environment separate from code is based on [The Twelve-Factor App](http://12factor.net/config) methodology.
When hosting a node app on [`iisnode`](https://github.com/tjanczuk/iisnode) (for instance in an [Azure WebApp](https://blogs.msdn.microsoft.com/hanuk/2012/05/04/top-benefits-of-running-node-js-on-windows-azure/)), `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
```bash
npm i -S iisnode-env
```
## Usage
As early as possible in your application, require and configure iisnode-env
```js
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.
```js
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`
```js
require('iisnode-env').config({ path: '/custom/path/to/web.config' })
```
##### Encoding
Default: `utf8`
```js
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:
```xml
```
We only get the values we find inside of the ``-section.
## Credits
Inspired by and based on
* https://github.com/motdotla/dotenv
## License
MIT: http://tolu.mit-license.org