Bird
Raised Fist0
Node.jsframework~5 mins

process.cwd and __dirname in Node.js - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What does process.cwd() return in Node.js?

process.cwd() returns the current working directory from where the Node.js process was started. It shows the folder path you are 'in' when you run your script.

Click to reveal answer
beginner
What is __dirname in Node.js?

__dirname is a variable that holds the directory path of the current JavaScript file. It tells you where the file itself lives on your computer.

Click to reveal answer
intermediate
How do process.cwd() and __dirname differ?

process.cwd() shows the folder where you started the Node.js program.
__dirname shows the folder where the current script file is located.
They can be different if you run the script from another folder.

Click to reveal answer
intermediate
Why might process.cwd() and __dirname be different?

Because you can run a Node.js script from any folder. process.cwd() is where you ran the command, but __dirname is where the script file lives. For example, running node ./scripts/app.js from your home folder means process.cwd() is your home folder, but __dirname is the scripts folder.

Click to reveal answer
beginner
How can you use __dirname to load a file relative to the current script?
<p>You can combine <code>__dirname</code> with <code>path.join()</code> to build a path to a file in the same folder or a subfolder. For example:<br><code>const path = require('path');<br>const filePath = path.join(__dirname, 'data.txt');</code></p>
Click to reveal answer
What does process.cwd() return?
AThe folder where the current script file is located
BThe user's home directory
CThe folder where the Node.js process was started
DThe root directory of the system
What does __dirname represent?
AThe folder where the Node.js process was started
BThe folder where the current script file is located
CThe temporary files directory
DThe user's home directory
If you run node ./scripts/app.js from your home folder, what will process.cwd() return?
AThe <code>scripts</code> folder path
BThe root folder path
CThe <code>app.js</code> file path
DThe home folder path
Which Node.js module helps safely join paths with __dirname?
Apath
Bhttp
Cfs
Dos
Why is it better to use __dirname instead of process.cwd() when loading files relative to the script?
ABecause <code>process.cwd()</code> changes depending on where you run the script
BBecause <code>__dirname</code> is always the root folder
CBecause <code>process.cwd()</code> is slower
DBecause <code>__dirname</code> is a function
Explain the difference between process.cwd() and __dirname in Node.js.
Think about where you run the command vs where the file lives.
You got /3 concepts.
    How would you use __dirname to load a file named 'config.json' located in the same folder as your script?
    Combine __dirname with path.join for safe file paths.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does process.cwd() return in a Node.js program?
      easy
      A. The folder where the current script file is located
      B. The folder where you started the Node.js program
      C. The full path of the current script file
      D. The user's home directory

      Solution

      1. Step 1: Understand process.cwd() purpose

        process.cwd() returns the current working directory where the Node.js process was started, not the script location.
      2. Step 2: Compare with __dirname

        __dirname gives the script's folder, which is different from the working directory if you run the script from another folder.
      3. Final Answer:

        The folder where you started the Node.js program -> Option B
      4. Quick Check:

        process.cwd() = start folder [OK]
      Hint: Remember: cwd = where you run node from [OK]
      Common Mistakes:
      • Confusing process.cwd() with __dirname
      • Thinking it returns the script file path
      • Assuming it returns the user's home directory
      2. Which of the following is the correct way to get the directory name of the current script file in Node.js?
      easy
      A. __dirname
      B. process.dirName
      C. process.cwd()
      D. currentDir()

      Solution

      1. Step 1: Identify the built-in variable for script folder

        __dirname is a Node.js global variable that holds the directory path of the current script file.
      2. Step 2: Check other options for validity

        process.cwd() returns the working directory, not script folder. The others are not valid Node.js properties or functions.
      3. Final Answer:

        __dirname -> Option A
      4. Quick Check:

        __dirname = script folder [OK]
      Hint: Use __dirname for script folder path [OK]
      Common Mistakes:
      • Using process.cwd() instead of __dirname
      • Trying to use non-existent properties like process.dirName
      • Confusing function names
      3. Consider this code run from folder /home/user/projects with script located at /home/user/projects/app/server.js:
      console.log(process.cwd());
      console.log(__dirname);
      What will be the output?
      medium
      A. /home/user/projects /home/user/projects/app
      B. /home/user/projects/app /home/user/projects/app
      C. /home/user/projects/app /home/user/projects
      D. /home/user/projects /home/user/projects

      Solution

      1. Step 1: Understand process.cwd() output

        Since the program is started in /home/user/projects, process.cwd() returns this folder.
      2. Step 2: Understand __dirname output

        The script is located in /home/user/projects/app/server.js, so __dirname returns /home/user/projects/app.
      3. Final Answer:

        /home/user/projects /home/user/projects/app -> Option A
      4. Quick Check:

        cwd = start folder, __dirname = script folder [OK]
      Hint: cwd = run folder, __dirname = script folder [OK]
      Common Mistakes:
      • Swapping outputs of process.cwd() and __dirname
      • Assuming both return the same path
      • Ignoring where the script file is located
      4. You wrote this code in /app/index.js and ran it from /app folder:
      console.log(process.dirName);
      What will happen when you run this script?
      medium
      A. It prints the current working directory
      B. It prints the script's directory
      C. It throws a ReferenceError
      D. It prints undefined

      Solution

      1. Step 1: Check the property used

        process.dirName is not a valid property in Node.js. The correct property is __dirname.
      2. Step 2: Understand the error caused

        Accessing an undefined property on process does not throw an error, but since process is an object, process.dirName is undefined. However, trying to log undefined prints 'undefined' without error.
      3. Step 3: Confirm behavior

        Since process.dirName is undefined, console.log prints 'undefined'. No ReferenceError occurs.
      4. Final Answer:

        It prints undefined -> Option D
      5. Quick Check:

        Invalid property logs undefined [OK]
      Hint: Check exact property names; typos cause undefined [OK]
      Common Mistakes:
      • Expecting ReferenceError for undefined property
      • Confusing __dirname with process.dirName
      • Assuming process.dirName exists
      5. You want to read a file named config.json located in the same folder as your script /project/src/app.js. You run the script from /project folder. Which code snippet correctly builds the path to config.json to read it safely regardless of where you run the script?
      hard
      A. const configPath = './config.json';
      B. const path = require('path'); const configPath = path.join(process.cwd(), 'config.json');
      C. const path = require('path'); const configPath = path.join(__dirname, 'config.json');
      D. const configPath = process.cwd() + '/src/config.json';

      Solution

      1. Step 1: Identify script and file locations

        The script is at /project/src/app.js and config.json is in the same folder /project/src.
      2. Step 2: Understand path building with __dirname

        Using __dirname gives the script folder regardless of where you run the script, so joining __dirname with config.json correctly points to the file.
      3. Step 3: Analyze other options

        const path = require('path'); const configPath = path.join(process.cwd(), 'config.json'); uses process.cwd() which is /project, so it looks for /project/config.json (wrong folder). const configPath = './config.json'; is relative and depends on run folder, risky. const configPath = process.cwd() + '/src/config.json'; hardcodes path and may break on different OS or run folders.
      4. Final Answer:

        const path = require('path'); const configPath = path.join(__dirname, 'config.json'); -> Option C
      5. Quick Check:

        Use __dirname to locate files relative to script [OK]
      Hint: Use __dirname + path.join for script-relative files [OK]
      Common Mistakes:
      • Using process.cwd() which depends on run folder
      • Using relative paths without __dirname
      • Hardcoding paths without path.join