Skip to main content

getEnv

Read environment variable values with optional default values.

Import​

import { getEnv } from '@evershop/evershop/lib/util/getEnv';

Syntax​

getEnv(name: string, defaultValue?: string): string

Parameters​

name​

Type: string

The name of the environment variable.

defaultValue​

Type: string (optional)

The value to return if the environment variable is not set.

Return Value​

Returns the environment variable value. If the variable is not set, returns the defaultValue if provided, otherwise returns undefined.

Examples​

Basic Usage​

import { getEnv } from '@evershop/evershop/lib/util/getEnv';

// Get database host
const dbHost = getEnv('DB_HOST', 'localhost');

// Get API key
const apiKey = getEnv('STRIPE_SECRET_KEY');

// Get port number
const port = getEnv('PORT', '3000');

With Type Conversion​

import { getEnv } from '@evershop/evershop/lib/util/getEnv';

// Convert to number
const port = parseInt(getEnv('PORT', '3000'), 10);

// Convert to boolean
const isProduction = getEnv('NODE_ENV') === 'production';

// Parse JSON
const allowedOrigins = JSON.parse(getEnv('ALLOWED_ORIGINS', '[]'));

Database Configuration​

import { getEnv } from '@evershop/evershop/lib/util/getEnv';

const dbConfig = {
host: getEnv('DB_HOST', 'localhost'),
port: parseInt(getEnv('DB_PORT', '5432'), 10),
database: getEnv('DB_NAME', 'evershop'),
user: getEnv('DB_USER', 'postgres'),
password: getEnv('DB_PASSWORD')
};

Feature Flags​

import { getEnv } from '@evershop/evershop/lib/util/getEnv';

// Check if feature is enabled
const enableCache = getEnv('ENABLE_CACHE', 'true') === 'true';
const enableDebug = getEnv('DEBUG') === '1';

if (enableDebug) {
console.log('Debug mode enabled');
}

API Configuration​

import { getEnv } from '@evershop/evershop/lib/util/getEnv';

// External API configuration
const apiConfig = {
stripe: {
publicKey: getEnv('STRIPE_PUBLIC_KEY'),
secretKey: getEnv('STRIPE_SECRET_KEY')
},
sendgrid: {
apiKey: getEnv('SENDGRID_API_KEY')
},
aws: {
accessKeyId: getEnv('AWS_ACCESS_KEY_ID'),
secretAccessKey: getEnv('AWS_SECRET_ACCESS_KEY'),
region: getEnv('AWS_REGION', 'us-east-1')
}
};

Environment Files​

Environment variables are typically stored in .env files:

# .env file
DB_HOST=localhost
DB_PORT=5432
DB_NAME=evershop
DB_USER=postgres
DB_PASSWORD=secret

NODE_ENV=development
PORT=3000

STRIPE_SECRET_KEY=sk_test_xxxxx
STRIPE_PUBLIC_KEY=pk_test_xxxxx

Notes​

  • Environment variables are loaded at application startup
  • Values are always returned as strings
  • Type conversion must be done manually when needed
  • Sensitive values (API keys, passwords) should only be stored in environment variables
  • The .env file should be added to .gitignore
  • Use different .env files for different environments

See Also​