Bird
Raised Fist0
Node.jsframework~5 mins

path.parse and path.format 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 path.parse() do in Node.js?

path.parse() takes a file path string and breaks it into an object with parts like root, dir, base, ext, and name. It helps you understand or use each part separately.

Click to reveal answer
beginner
What are the main properties returned by path.parse()?

The main properties are:

  • root: The root of the path (like '/' or 'C:\\')
  • dir: The directory path without the file
  • base: The file name with extension
  • ext: The file extension (like '.txt')
  • name: The file name without extension
Click to reveal answer
beginner
What does path.format() do in Node.js?

path.format() takes an object with path parts (like dir, base, name, ext) and combines them into a full path string. It's like putting puzzle pieces back together.

Click to reveal answer
intermediate
How do path.parse() and path.format() work together?

You can use path.parse() to split a path into parts, change or inspect those parts, then use path.format() to build a new path string from the parts. It's like breaking a sentence into words, changing a word, then joining it back.

Click to reveal answer
beginner
If you have { dir: '/home/user', base: 'file.txt' }, what will path.format() return?

It will return the string '/home/user/file.txt'. It joins the directory and the base file name into a full path.

Click to reveal answer
Which method breaks a file path into parts like root, dir, base, ext, and name?
Apath.parse()
Bpath.format()
Cpath.join()
Dpath.resolve()
Which method combines parts of a path object into a full path string?
Apath.parse()
Bpath.format()
Cpath.basename()
Dpath.dirname()
What property in the object returned by path.parse() contains the file extension?
Aname
Bbase
Cext
Ddir
If you want to change the file name but keep the directory, which method helps you split the path first?
Apath.format()
Bpath.extname()
Cpath.join()
Dpath.parse()
Given { root: '/', dir: '/home/user', base: 'file.txt', ext: '.txt', name: 'file' }, what will path.format() return?
A/home/user/file.txt
B/file.txt
C/home/user/file
Dfile.txt
Explain how you can use path.parse() and path.format() together to rename a file in a path.
Think about breaking the path, changing the file name, then joining it back.
You got /3 concepts.
    Describe the difference between the base and name properties in the object returned by path.parse().
    One includes the extension, the other does not.
    You got /2 concepts.

      Practice

      (1/5)
      1. What does path.parse do in Node.js?
      easy
      A. It breaks a file path into parts like root, dir, base, name, and ext.
      B. It combines multiple file paths into one string.
      C. It reads the contents of a file at the given path.
      D. It deletes a file at the specified path.

      Solution

      1. Step 1: Understand the purpose of path.parse

        path.parse takes a file path string and splits it into an object with properties like root, dir, base, name, and ext.
      2. Step 2: Compare with other options

        Options A, C, and D describe different file system operations, not path parsing.
      3. Final Answer:

        It breaks a file path into parts like root, dir, base, name, and ext. -> Option A
      4. Quick Check:

        path.parse splits path into parts [OK]
      Hint: Remember: parse means split path into pieces [OK]
      Common Mistakes:
      • Confusing path.parse with reading file contents
      • Thinking path.parse combines paths
      • Mixing up path.parse with deleting files
      2. Which of the following is the correct way to use path.format to build a path from parts?
      easy
      A. path.format('file.txt')
      B. path.format('/home/user/file.txt')
      C. path.format({ root: '/', dir: '/home/user', base: 'file.txt' })
      D. path.format(['home', 'user', 'file.txt'])

      Solution

      1. Step 1: Identify correct argument type for path.format

        path.format expects an object with path parts like root, dir, base, name, or ext.
      2. Step 2: Check each option

        path.format({ root: '/', dir: '/home/user', base: 'file.txt' }) correctly passes an object with root, dir, and base. Options B, C, and D pass strings or arrays, which are invalid.
      3. Final Answer:

        path.format({ root: '/', dir: '/home/user', base: 'file.txt' }) -> Option C
      4. Quick Check:

        path.format needs object with parts [OK]
      Hint: path.format needs an object, not a string or array [OK]
      Common Mistakes:
      • Passing a string instead of an object to path.format
      • Using an array instead of an object
      • Confusing path.format with path.parse usage
      3. What is the output of this code?
      const path = require('path');
      const parsed = path.parse('/home/user/docs/file.txt');
      console.log(parsed.base);
      medium
      A. '/home/user/docs/file.txt'
      B. 'file.txt'
      C. 'file'
      D. '.txt'

      Solution

      1. Step 1: Understand what path.parse returns

        path.parse returns an object with properties including base, which is the last part of the path with extension.
      2. Step 2: Check the base property for given path

        For '/home/user/docs/file.txt', base is 'file.txt'.
      3. Final Answer:

        'file.txt' -> Option B
      4. Quick Check:

        parsed.base = 'file.txt' [OK]
      Hint: base is filename with extension from path.parse [OK]
      Common Mistakes:
      • Confusing base with dir or name
      • Expecting full path instead of base
      • Mixing base with extension only
      4. Identify the error in this code snippet:
      const path = require('path');
      const parts = path.parse('/var/log/sys.log');
      const newPath = path.format(parts.dir + '/backup/' + parts.base);
      console.log(newPath);
      medium
      A. path.format expects an object, but a string was passed.
      B. path.parse cannot parse absolute paths.
      C. The variable parts is not defined.
      D. The console.log statement is missing parentheses.

      Solution

      1. Step 1: Check the argument passed to path.format

        path.format requires an object with path parts, but here a string is passed by concatenating parts.dir, '/backup/', and parts.base.
      2. Step 2: Understand correct usage of path.format

        To add '/backup/' folder, modify parts.dir property or create a new object, then pass that object to path.format.
      3. Final Answer:

        path.format expects an object, but a string was passed. -> Option A
      4. Quick Check:

        path.format needs object, not string [OK]
      Hint: path.format always needs an object, never a string [OK]
      Common Mistakes:
      • Passing a string instead of an object to path.format
      • Assuming path.parse fails on absolute paths
      • Forgetting parentheses in console.log (not true here)
      5. Given this code, what will console.log(newPath) output?
      const path = require('path');
      const parts = path.parse('/usr/local/bin/node');
      const updatedParts = { ...parts, dir: parts.dir + '/backup' };
      const newPath = path.format(updatedParts);
      console.log(newPath);
      hard
      A. '/usr/local/bin/backup/'
      B. '/usr/local/bin/node/backup'
      C. '/usr/local/bin/node'
      D. '/usr/local/bin/backup/node'

      Solution

      1. Step 1: Analyze how updatedParts modifies dir

        updatedParts copies all parts but changes dir to parts.dir + '/backup', so dir becomes '/usr/local/bin/backup'.
      2. Step 2: Understand path.format output

        path.format builds path from updatedParts, combining dir and base ('node'), resulting in '/usr/local/bin/backup/node'.
      3. Final Answer:

        '/usr/local/bin/backup/node' -> Option D
      4. Quick Check:

        Modified dir + base = '/usr/local/bin/backup/node' [OK]
      Hint: Changing dir in parts changes folder path in output [OK]
      Common Mistakes:
      • Appending backup to base instead of dir
      • Confusing order of path parts
      • Forgetting to spread parts before modifying