Node.js : Day 10
How to set up Environment variables in node.js

What is enviroment variables?
Environment variables are global variables that are used to define the environment in which node is running.
How to get Express environment variable:
const express = require('express');
const app = express();
console.log(app.get('env')); // It will give output as: development
const port = 3000;
app.listen(port, ()=>{
console.log(`App running on port ${port}...`);
});
console.log(app.get('env'));
this line will print ‘development’ on the console because it is set by express.
output:

Node environment variables:
If you want to see the node enviroment variables then :
const express = require('express');
const app = express();
console.log(process.env); // log the all enviroment variables
const port = 3000;
app.listen(port, ()=>{
console.log(`App running on port ${port}...`);
});
It will give Output like this a big object:
{
ALLUSERSPROFILE: 'C:\\ProgramData',
ANDROID_HOME: 'C:\\Users\\rahul.kumar\\AppData\\Local\\Android\\Sdk',
APPDATA: 'C:\\Users\\rahul.kumar\\AppData\\Roaming',
BPPDOMAIN_MANAGER_ASM: 'EdrDotNet, Version+130.0.0.0, Culture+neutral, PublicKeyTkea91',
BPPDOMAIN_MANAGER_TYPE: 'EdrDotNet.EdrAppDomainManager',
CHROME_CRASHPAD_PIPE_NAME: '\\\\.\\pipe\\crashpad_21656_WFMVPELSNEEAIDUV',
COLOR: '1',
COLORTERM: 'truecolor',
CommonProgramFiles: 'C:\\Program Files\\Common Files',
'CommonProgramFiles(x86)': 'C:\\Program Files (x86)\\Common Files',
CommonProgramW6432: 'C:\\Program Files\\Common Files',
COMPUTERNAME: 'BHUKR2820LGKL',
ComSpec: 'C:\\WINDOWS\\system32\\cmd.exe',
DriverData: 'C:\\Windows\\System32\\Drivers\\DriverData',
EDITOR: 'C:\\WINDOWS\\notepad.exe',
GIT_ASKPASS: 'c:\\Program Files\\Microsoft VS Code New\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass.sh',
HOME: 'C:\\Users\\rahul.kumar',
HOMEDRIVE: 'C:',
HOMEPATH: '\\Users\\rahul.kumar',
INIT_CWD: 'D:\\Workspace\\Node-Projects\\Natours\\starter',
LANG: 'en_US.UTF-8',
LOCALAPPDATA: 'C:\\Users\\rahul.kumarAppData\\Local',
LOGONSERVER: '\\\\CHDSEZGDC02',
NcpClntDataPath: 'C:\\ProgramData\\Juniper\\SecureConnect',
NcpClntInstallPath: 'C:\\Program Files\\Juniper\\SecureConnect',
NODE: 'C:\\Program Files\\nodejs\\node.exe',
NODE_EXE: 'C:\\Program Files\\nodejs\\\\node.exe',
NPM_CLI_JS: 'C:\\Users\\rahul.kumar\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
npm_command: 'start',
npm_config_cache: 'C:\\Users\\rahul.kumar\\AppData\\Local\\npm-cache',
npm_config_globalconfig: 'C:\\Users\\rahul.kumar\\AppData\\Roaming\\npm\\etc\\npmrc',
npm_config_global_prefix: 'C:\\Users\\rahul.kumar\\AppData\\Roaming\\npm',
npm_config_init_module: 'C:\\Users\\rahul.kumar1\\.npm-init.js',
npm_config_local_prefix: 'D:\\Workspace\\Node-Projects\\Natours\\starter',
npm_config_node_gyp: 'C:\\Users\\rahul.kumar\\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js',
npm_config_noproxy: '',
npm_config_npm_version: '10.8.2',
npm_config_prefix: 'C:\\Users\\rahul.kumar\\AppData\\Roaming\\npm',
npm_config_registry: 'https://registry.yarnpkg.com',
npm_config_userconfig: 'C:\\Users\\rahul.kumar\\.npmrc',
npm_config_user_agent: 'npm/10.8.2 node/v20.9.0 win32 x64 workspaces/false',
npm_execpath: 'C:\\Users\\rahul.kumar\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
npm_lifecycle_event: 'start',
npm_lifecycle_script: 'nodemon server.js',
npm_node_execpath: 'C:\\Program Files\\nodejs\\node.exe',
npm_package_json: 'D:\\Workspace\\Node-Projects\\Natours\\starter\\package.json',
npm_package_name: 'starter',
npm_package_version: '1.0.0',
NPM_PREFIX_NPM_CLI_JS: 'C:\\Users\\rahul.kumar\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
NUMBER_OF_PROCESSORS: '8',
OneDrive: 'D:\\rahul.kumar\\OneDrive - Infosys Limited',
OneDriveCommercial: 'D:\\rahul.kumar\\OneDrive - Infosys Limited',
ORIGINAL_XDG_CURRENT_DESKTOP: 'undefined',
OS: 'Windows_NT',
Path: 'D:\\Workspace\\Node-Projects\\Natours\\starter\\node_modules\\.bin;D:\\Workspace\\Node-Projects\\Natours\\node_modules\\.bin;D:\\Workspace\\Node-Projects\\node_modules\\.bin;D:\\Workspace\\node_modules\\.bin;D:\\node_modules\\.bin;C:\\Users\\rahul.kumar189\\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\@npmcli\\run-script\\lib\\node-gyp-bin;C:\\Program Files\\Eclipse Adoptium\\jdk-17.0.12.7-hotspot\\bin;C:\\Program Files\\Python310\\Scripts\\;C:\\Program Files\\Python310\\;C:\\Program Files (x86)\\Python38-32\\Scripts\\;C:\\Program Files (x86)\\Python38-32\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Microsoft VS Code New\\Microsoft VS Code\\bin;C:\\Program Files\\Git\\cmd;C:\\Program Files\\nodejs\\;C:\\Program Files\\PuTTY\\;C:\\Users\\rahul.kumar189\\AppData\\Local\\Android\\Sdk\\platform-tools;C:\\Users\\rahul.kumar189\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\rahul.kumar189\\AppData\\Local\\GitHubDesktop\\bin;C:\\Users\\rahul.kumar189\\AppData\\Local\\JetBrains\\PyCharm 2022.1\\bin;;C:\\Users\\rahul.kumar189\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin;C:\\Program Files\\MongoDB\\Server\\6.0\\bin;C:\\Users\\rahul.kumar189\\AppData\\Roaming\\npm;',
PATHEXT: '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW;.CPL',
PROCESSOR_ARCHITECTURE: 'AMD64',
PROCESSOR_IDENTIFIER: 'Intel64 Family 6 Model 140 Stepping 1, GenuineIntel',
PROCESSOR_LEVEL: '6',
PROCESSOR_REVISION: '8c01',
ProgramData: 'C:\\ProgramData',
ProgramFiles: 'C:\\Program Files',
'ProgramFiles(x86)': 'C:\\Program Files (x86)',
ProgramW6432: 'C:\\Program Files',
PROMPT: '$P$G',
PSModulePath: 'C:\\Users\\rahul.kumar\\Documents\\WindowsPowerShell\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules;C:\\Program Files (x86)\\Microsoft Purview Information Protection\\Powershell',
PUBLIC: 'C:\\Users\\Public',
PyCharm: 'C:\\Users\\rahul.kumar\\AppData\\Local\\JetBrains\\PyCharm 2022.1\\bin;',
SESSIONNAME: 'Console',
VSCODE_INJECTION: '1',
windir: 'C:\\WINDOWS',
ZES_ENABLE_SYSMAN: '1',
__PSLockDownPolicy: '0'
}
How to set the node enviroment variable:
by using terminal
$ NODE_ENV=development node app.js
If you will run this command on the terminal this will set the enviroment variable.
Sometimes it won’t work and It is not very practical to always set the environment variable through terminal so we will create confuguration file to set the enviroment variable.
config.env
NODE_ENV=development
PORT=3000
USER=rahul.kumar
PASSWORD=123456789
How to connect these file to node environment variable?
or
How node.js will get to know these texts from config.env file to set as env variable?
→ So, For this we need to use a package called ‘dotenv’.
Step 1. Install dotenv
Command for Installing the dotenv package:
npm i dotenv
Step 2. require dotenv and use it
config function takes path of config.env and It sets the all the env variables from that file.
dotenv.config({path: "./config.env" });
example:
const dotenv = require('dotenv');
const express = require('express');
const app = express();
dotenv.config({path: "./config.env" });
console.log(process.env); // log the all enviroment variables
app.listen(PORT, ()=>{
console.log(`App running on port ${port}...`);
});
Now you can see the whatever we set as environment variable it is there on node environment object:
{
ALLUSERSPROFILE: 'C:\\ProgramData',
ANDROID_HOME: 'C:\\Users\\rahul.kumar\\AppData\\Local\\Android\\Sdk',
APPDATA: 'C:\\Users\\rahul.kumar\\AppData\\Roaming',
BPPDOMAIN_MANAGER_ASM: 'EdrDotNet, Version+130.0.0.0, Culture+neutral, PublicKeyToken+da1b3922653ea916',
BPPDOMAIN_MANAGER_TYPE: 'EdrDotNet.EdrAppDomainManager',
CHROME_CRASHPAD_PIPE_NAME: '\\\\.\\pipe\\crashpad_21656_WFMVPELSNEEAIDUV',
COLORTERM: 'truecolor',
CommonProgramFiles: 'C:\\Program Files\\Common Files',
'CommonProgramFiles(x86)': 'C:\\Program Files (x86)\\Common Files',
CommonProgramW6432: 'C:\\Program Files\\Common Files',
COMPUTERNAME: 'BHUKRK502820L',
ComSpec: 'C:\\WINDOWS\\system32\\cmd.exe',
DriverData: 'C:\\Windows\\System32\\Drivers\\DriverData',
GIT_ASKPASS: 'c:\\Program Files\\Microsoft VS Code New\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass.sh',
HOMEDRIVE: 'C:',
HOMEPATH: '\\Users\\rahul.kumar',
LANG: 'en_US.UTF-8',
LOCALAPPDATA: 'C:\\Users\\rahul.kumar\\AppData\\Local',
LOGONSERVER: '\\\\CHDSEZGDC02',
NcpClntDataPath: 'C:\\ProgramData\\Juniper\\SecureConnect',
NcpClntInstallPath: 'C:\\Program Files\\Juniper\\SecureConnect',
NODE_ENV: 'development',
NUMBER_OF_PROCESSORS: '8',
OneDrive: 'D:\\rahul.kumar\\OneDrive - Infosys Limited',
OneDriveCommercial: 'D:\\rahul.kumar\\OneDrive - Infosys Limited',
ORIGINAL_XDG_CURRENT_DESKTOP: 'undefined',
OS: 'Windows_NT',
PASSWORD: '123456789',
Path: 'C:\\Program Files\\Eclipse Adoptium\\jdk-17.0.12.7-hotspot\\bin;C:\\Program Files\\Python310\\Scripts\\;C:\\Program Files\\Python310\\;C:\\Program Files (x86)\\Python38-32\\Scripts\\;C:\\Program Files (x86)\\Python38-32\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Microsoft VS Code New\\Microsoft VS Code\\bin;C:\\Program Files\\Git\\cmd;C:\\Program Files\\nodejs\\;C:\\Program Files\\PuTTY\\;C:\\Users\\rahul.kumar\\AppData\\Local\\Android\\Sdk\\platform-tools;C:\\Users\\rahul.kumar\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\rahul.kumar\\AppData\\Local\\GitHubDesktop\\bin;C:\\Users\\rahul.kumar\\AppData\\Local\\JetBrains\\PyCharm 2022.1\\bin;;C:\\Users\\rahul.kumar\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Program Files\\MySQL\\MySQL Server 5.6\\bin;C:\\Program Files\\MongoDB\\Server\\6.0\\bin;C:\\Users\\rahul.kumar\\AppData\\Roaming\\npm;',
PATHEXT: '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW;.CPL',
PORT: '3000',
PROCESSOR_ARCHITECTURE: 'AMD64',
PROCESSOR_IDENTIFIER: 'Intel64 Family 6 Model 140 Stepping 1, GenuineIntel',
PROCESSOR_LEVEL: '6',
PROCESSOR_REVISION: '8c01',
ProgramData: 'C:\\ProgramData',
ProgramFiles: 'C:\\Program Files',
'ProgramFiles(x86)': 'C:\\Program Files (x86)',
ProgramW6432: 'C:\\Program Files',
PROMPT: '$P$G',
PSModulePath: 'C:\\Users\\rahul.kumar\\Documents\\WindowsPowerShell\\Modules;C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules;C:\\Program Files (x86)\\Microsoft Purview Information Protection\\Powershell',
PUBLIC: 'C:\\Users\\Public',
PyCharm: 'C:\\Users\\rahul.kumar\\AppData\\Local\\JetBrains\\PyCharm 2022.1\\bin;',
SESSIONNAME: 'Console',
SNC_LIB: 'C:\\Program Files (x86)\\SAP\\FrontEnd\\SecureLogin\\lib\\sapcrypto.dll',
SNC_LIB_64: 'C:\\Program Files\\SAP\\FrontEnd\\SecureLogin\\lib\\sapcrypto.dll',
SSF_LIBRARY_PATH: 'C:\\Program Files (x86)\\SAP\\FrontEnd\\SecureLogin\\lib\\sapcrypto.dll',
SSF_LIBRARY_PATH_64: 'C:\\Program Files\\SAP\\FrontEnd\\SecureLogin\\lib\\sapcrypto.dll',
SystemDrive: 'C:',
SystemRoot: 'C:\\WINDOWS',
TEMP: 'C:\\Users\\rahul.kumar\\AppData\\Local\\Temp',
TERM_PROGRAM: 'vscode',
TERM_PROGRAM_VERSION: '1.95.2',
TMP: 'C:\\Users\\rahul.kumar\\AppData\\Local\\Temp',
UATDATA: 'C:\\WINDOWS\\CCM\\UATData\\D9F8C395-CAB8-491d-B8AC-179A1FE1BE77',
USER: 'rahul.kumar',
USERDNSDOMAIN: 'AD.INFOSYS.COM',
USERDOMAIN: 'ITLINFOSYS',
USERDOMAIN_ROAMINGPROFILE: 'ITLINFOSYS',
USERNAME: 'rahul.kumar',
USERPROFILE: 'C:\\Users\\rahul.kumar',
VSCODE_GIT_ASKPASS_EXTRA_ARGS: '',
VSCODE_GIT_ASKPASS_MAIN: 'c:\\Program Files\\Microsoft VS Code New\\Microsoft VS Code\\resources\\app\\extensions\\git\\dist\\askpass-main.js',
VSCODE_GIT_ASKPASS_NODE: 'C:\\Program Files\\Microsoft VS Code New\\Microsoft VS Code\\Code.exe',
VSCODE_GIT_IPC_HANDLE: '\\\\.\\pipe\\vscode-git-87e00d9e8f-sock',
VSCODE_INJECTION: '1',
windir: 'C:\\WINDOWS',
WSLENV: 'WT_SESSION:WT_PROFILE_ID:',
WT_PROFILE_ID: '{61c54bbd-c2c6-5271-96e7-009a87ff44bf}',
WT_SESSION: 'a22a5256-6958-4ee9-93d4-3ad7f9473e9b',
ZES_ENABLE_SYSMAN: '1',
__PSLockDownPolicy: '0'
}
All the variables we declared inside config.env, that is avialable in this object.