Bird
Raised Fist0
Node.jsframework~10 mins

dotenv for environment configuration in Node.js - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to load environment variables from a .env file.

Node.js
require('[1]').config();
console.log(process.env.MY_VAR);
Drag options to blanks, or click blank then click option'
Adotenv
Bexpress
Chttp
Dfs
Attempts:
3 left
💡 Hint
Common Mistakes
Using other packages like express or fs instead of dotenv.
2fill in blank
medium

Complete the code to access the environment variable named PORT.

Node.js
const port = process.env.[1] || 3000;
console.log(`Server runs on port ${port}`);
Drag options to blanks, or click blank then click option'
APORT
Bport
CPath
DHOST
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase 'port' instead of uppercase 'PORT'.
3fill in blank
hard

Fix the error in the code to correctly load environment variables.

Node.js
import dotenv from '[1]';
dotenv.[2]();
console.log(process.env.SECRET_KEY);
Drag options to blanks, or click blank then click option'
Aconfig
Bdotenv
Cexpress
Dload
Attempts:
3 left
💡 Hint
Common Mistakes
Importing from wrong package names like 'express' or 'load'.
4fill in blank
hard

Fill both blanks to create a .env file and load a variable named API_KEY.

Node.js
API_KEY=[1]

require('dotenv').[2]();
console.log(process.env.API_KEY);
Drag options to blanks, or click blank then click option'
A"12345abcde"
Bconfig
Cload
D"apikey"
Attempts:
3 left
💡 Hint
Common Mistakes
Not quoting the value or using wrong method name to load variables.
5fill in blank
hard

Fill all three blanks to create a Node.js script that loads dotenv, reads PORT, and starts a server.

Node.js
import dotenv from '[1]';
dotenv.[2]();
const port = process.env.[3] || 8080;
Drag options to blanks, or click blank then click option'
Adotenv
Bconfig
CPORT
Dexpress
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong package names or method names, or wrong variable case.

Practice

(1/5)
1. What is the main purpose of using dotenv in a Node.js project?
easy
A. To manage database connections automatically
B. To compile JavaScript code faster
C. To load environment variables from a file into process.env
D. To create HTTP servers easily

Solution

  1. Step 1: Understand what dotenv does

    dotenv reads a file (usually .env) and loads variables into process.env.
  2. Step 2: Identify the main purpose

    This allows your app to access secret or environment-specific settings safely without hardcoding them.
  3. Final Answer:

    To load environment variables from a file into process.env -> Option C
  4. Quick Check:

    dotenv loads env vars = C [OK]
Hint: dotenv loads .env variables into process.env [OK]
Common Mistakes:
  • Thinking dotenv compiles or runs code
  • Confusing dotenv with database or server tools
  • Expecting dotenv to manage app logic
2. Which of the following is the correct way to load environment variables using dotenv in a Node.js file?
easy
A. require('dotenv').config()
B. import dotenv from 'dotenv'; dotenv.load()
C. dotenv.setup()
D. require('dotenv').loadEnv()

Solution

  1. Step 1: Recall the dotenv usage syntax

    The official and common way to load variables is calling require('dotenv').config() at the start of your app.
  2. Step 2: Check other options for correctness

    The other options use incorrect method names or syntax not supported by dotenv.
  3. Final Answer:

    require('dotenv').config() -> Option A
  4. Quick Check:

    Use config() method to load dotenv [OK]
Hint: Use require('dotenv').config() to load env vars [OK]
Common Mistakes:
  • Using wrong method names like load or setup
  • Forgetting to call config() function
  • Trying to import dotenv without config call
3. Given the following code and .env file, what will be the output?

// .env file content
API_KEY=12345
PORT=8080


require('dotenv').config();
console.log(process.env.API_KEY);
console.log(process.env.PORT);
medium
A. undefined\nundefined
B. null\nnull
C. API_KEY\nPORT
D. 12345\n8080

Solution

  1. Step 1: dotenv loads variables from .env into process.env

    After calling require('dotenv').config(), process.env.API_KEY is set to "12345" and process.env.PORT is set to "8080" as strings.
  2. Step 2: console.log prints the values

    The console will output the values exactly as strings, separated by new lines.
  3. Final Answer:

    12345 8080 -> Option D
  4. Quick Check:

    dotenv loads vars as strings = 12345\n8080 [OK]
Hint: dotenv sets process.env vars as strings from .env [OK]
Common Mistakes:
  • Expecting numbers instead of strings
  • Not calling config() before accessing vars
  • Assuming variables are undefined without loading dotenv
4. What is the error in the following code snippet that prevents environment variables from loading correctly?

const dotenv = require('dotenv');
dotenv.config;
console.log(process.env.SECRET_KEY);
medium
A. Missing parentheses after config function call
B. dotenv package not installed
C. SECRET_KEY not defined in .env file
D. Using require instead of import

Solution

  1. Step 1: Check how dotenv.config is called

    The code uses dotenv.config; without parentheses, so the function is not executed.
  2. Step 2: Understand the effect of missing parentheses

    Without calling config(), environment variables are not loaded into process.env, so SECRET_KEY remains undefined.
  3. Final Answer:

    Missing parentheses after config function call -> Option A
  4. Quick Check:

    Call config() with () to load env vars [OK]
Hint: Always call config() with parentheses to load env [OK]
Common Mistakes:
  • Forgetting parentheses on config function
  • Assuming require auto-executes config
  • Ignoring missing .env file or variable
5. You want to use dotenv to load different environment variables for development and production. Your .env file has NODE_ENV=development and API_URL=http://localhost:3000. You also have a .env.production file with NODE_ENV=production and API_URL=https://api.example.com. How can you load the correct file based on the environment?
hard
A. Use dotenv.loadEnv(process.env.NODE_ENV) to auto-load
B. Call require('dotenv').config({ path: `.env.${process.env.NODE_ENV}` }) after setting NODE_ENV
C. Rename .env.production to .env manually before running
D. Call require('dotenv').config() only once without options

Solution

  1. Step 1: Understand dotenv supports custom paths

    dotenv's config function accepts a path option to specify which file to load.
  2. Step 2: Use NODE_ENV to select the file dynamically

    By calling require('dotenv').config({ path: `.env.${process.env.NODE_ENV}` }), you load .env.development or .env.production based on the environment.
  3. Final Answer:

    Call require('dotenv').config({ path: `.env.${process.env.NODE_ENV}` }) after setting NODE_ENV -> Option B
  4. Quick Check:

    Use config({ path }) to load env files by environment [OK]
Hint: Use config({ path: `.env.${NODE_ENV}` }) to load env files [OK]
Common Mistakes:
  • Not specifying path option for different env files
  • Manually renaming files instead of dynamic loading
  • Using nonexistent dotenv.loadEnv method