New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

env-config-example

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

env-config-example

Simple app to illustrate how to handle environment variables and config in Node.js

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

env-config-2: Node.js Package to Handle Environment Variables and Config

The goals of this package are:

  • To adhere to the Twelve Factor App principle of allowing config to be specified via environment variables so that we can have complete control over it for each environment that we may need (development, staging, production etc.)
  • To support setting config variables with environment variables so that we can avoid having sensitive information such as passwords in the source code
  • To be able to have convenient non-sensitve config defaults in the source code for the development environment to avoid the developer having to set a bunch of environment variables just to run the application in dev.
  • To support a .env file that is not under version control where developers can conveniently override config settings on a case-by-case basis in development

Installation

With npm:

npm install env-config-2 --save

With yarn:

yarn add env-config-2

Example Usage in an API Node.js App

# File: config.js
const envConfig = require('env-config-2')

const {NODE_ENV} = process.env
const defaultConfig ={
  NODE_ENV,
  PORT: (NODE_ENV === 'development' ? 3000 : null),
  MONGODB_URL: `mongodb://localhost:27017/node_env_config_example_${NODE_ENV}`,
  JWT_SECRET: (NODE_ENV === 'development' ? 'foobar' : null),
  JWT_EXPIRY: (3600 * 24 * 30),
  RATE_LIMIT: (NODE_ENV === 'production' ? 5 : null),
  ALGOLIASEARCH_APPLICATION_ID: null,
  ALGOLIASEARCH_API_KEY: null,
  ALGOLIASEARCH_API_KEY_SEARCH: null,
  API_BASE_URL: (NODE_ENV === 'development' ? 'http://localhost:3000/v1' : 'https://api.versioned.io/v1')
}

module.exports = envConfig.generateConfig(defaultConfig)
# File: index.js
const http = require('http')
const config = require('config')

function handler (request, response) {
   response.writeHead(200, {'Content-Type': 'text/plain'})
   response.end('Hello World')
}

const server = http.createServer(handler).listen(config.PORT)
console.log('Server started with config:', config)

Resources

  • The Twelve Factor App - Config
  • dotenv package
  • config package
  • env-config package

Keywords

config

FAQs

Package last updated on 26 Oct 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts