Bird
Raised Fist0
Node.jsframework~20 mins

Parsing query strings in Node.js - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Query String Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
What is the output of parsing a simple query string?
Given the following Node.js code using the built-in URLSearchParams, what will be logged to the console?
Node.js
const queryString = 'name=alice&age=30';
const params = new URLSearchParams(queryString);
console.log(params.get('name'), params.get('age'));
A"alice" "30"
B"name" "age"
Cundefined undefined
DSyntaxError
Attempts:
2 left
💡 Hint
Think about how URLSearchParams extracts values by key.
Predict Output
intermediate
2:00remaining
How does URLSearchParams handle repeated keys?
What will the following code output when parsing a query string with repeated keys?
Node.js
const queryString = 'color=red&color=blue&color=green';
const params = new URLSearchParams(queryString);
console.log(params.get('color'));
A"green"
B"red,blue,green"
C"red"
DTypeError
Attempts:
2 left
💡 Hint
URLSearchParams.get returns the first value for the key.
🔧 Debug
advanced
2:00remaining
Why does this code throw an error when parsing a query string?
Consider this code snippet. Why does it throw a TypeError?
Node.js
const queryString = 'foo=bar&baz';
const params = new URLSearchParams(queryString);
console.log(params.get('baz'));
ABecause URLSearchParams requires all keys to have values, missing '=' causes TypeError.
BBecause 'baz' is an invalid key and causes SyntaxError.
CBecause get() method is not defined on URLSearchParams.
DBecause 'baz' has no '=' sign and no value, get('baz') returns an empty string, not a TypeError.
Attempts:
2 left
💡 Hint
Check how URLSearchParams treats keys without values.
component_behavior
advanced
2:00remaining
What is the behavior of URLSearchParams.append() with existing keys?
Given this code, what will be the output of params.toString()?
Node.js
const params = new URLSearchParams('key=value1');
params.append('key', 'value2');
console.log(params.toString());
A"key=value2"
B"key=value1&key=value2"
C"key=value1,value2"
D"key=value1"
Attempts:
2 left
💡 Hint
append() adds a new value for the same key without replacing existing ones.
📝 Syntax
expert
3:00remaining
Which option correctly parses and modifies a query string to add a new parameter?
Select the code snippet that correctly parses 'a=1&b=2', adds 'c=3', and outputs the updated query string.
Aconst params = new URLSearchParams('a=1&b=2'); params.append('c', 3); console.log(params.toString());
Bconst params = new URLSearchParams('a=1&b=2'); params.add('c', 3); console.log(params.toString());
Cconst params = new URLSearchParams('a=1&b=2'); params.push('c', 3); console.log(params.toString());
Dconst params = new URLSearchParams('a=1&b=2'); params.set('c', 3); console.log(params.toString());
Attempts:
2 left
💡 Hint
Check the correct method name to add a new key-value pair without replacing existing keys.

Practice

(1/5)
1. What is the main purpose of parsing query strings in Node.js?
easy
A. To validate the URL format
B. To encrypt URL parameters for security
C. To compress the URL for faster loading
D. To convert URL parameters into a JavaScript object for easy use

Solution

  1. Step 1: Understand query strings

    Query strings are parts of a URL that contain parameters after a question mark.
  2. Step 2: Purpose of parsing

    Parsing converts these parameters into a JavaScript object so the app can easily access values.
  3. Final Answer:

    To convert URL parameters into a JavaScript object for easy use -> Option D
  4. Quick Check:

    Parsing query strings = converting to object [OK]
Hint: Parsing query strings means turning URL data into objects [OK]
Common Mistakes:
  • Thinking parsing encrypts or compresses URLs
  • Confusing parsing with URL validation
  • Assuming parsing changes the URL itself
2. Which of the following is the correct way to import the querystring module in Node.js?
easy
A. const querystring = require('querystring');
B. import querystring from 'querystring';
C. const querystring = import('querystring');
D. require querystring = 'querystring';

Solution

  1. Step 1: Identify Node.js import syntax

    Node.js commonly uses require() to import modules in CommonJS style.
  2. Step 2: Check syntax correctness

    const querystring = require('querystring'); correctly imports the module.
  3. Final Answer:

    const querystring = require('querystring'); -> Option A
  4. Quick Check:

    Use require() to import modules in Node.js [OK]
Hint: Use require('module') to import in Node.js [OK]
Common Mistakes:
  • Using ES6 import syntax without setup
  • Incorrect assignment syntax
  • Confusing import with require
3. What will be the output of the following code?
const querystring = require('querystring');
const url = 'name=John&age=30';
const parsed = querystring.parse(url);
console.log(parsed);
medium
A. { name: 'John', age: '30' }
B. { 'name=John&age=30': '' }
C. SyntaxError
D. null

Solution

  1. Step 1: Use querystring.parse on URL string

    The parse function converts the query string into an object with keys and values.
  2. Step 2: Check output object

    It creates an object: { name: 'John', age: '30' } with string values.
  3. Final Answer:

    { name: 'John', age: '30' } -> Option A
  4. Quick Check:

    querystring.parse returns object from query string [OK]
Hint: parse() turns query string into key-value object [OK]
Common Mistakes:
  • Expecting numbers instead of strings for values
  • Confusing parse with stringify
  • Assuming parse returns null or error
4. Identify the error in this code snippet:
const querystring = require('querystring');
const url = 'name=Alice&city=Wonderland';
const parsed = querystring.parse(url);
console.log(parsed.name, parsed.city);
medium
A. querystring module is not imported correctly
B. parse() cannot parse strings without '?' prefix
C. No error, code works correctly
D. parsed object properties should be accessed with brackets

Solution

  1. Step 1: Check module import

    The module is imported correctly using require.
  2. Step 2: Check parse usage and property access

    parse() accepts query strings without '?' and properties accessed correctly with dot notation.
  3. Final Answer:

    No error, code works correctly -> Option C
  4. Quick Check:

    querystring.parse works on plain query strings [OK]
Hint: parse() works without '?' prefix in query string [OK]
Common Mistakes:
  • Thinking '?' is required in parse input
  • Assuming bracket notation is mandatory
  • Believing import syntax is wrong
5. You receive a URL query string with repeated keys: id=1&id=2&id=3. Using querystring.parse, what will the parsed object look like?
hard
A. { id: ['1', '2', '3'] }
B. { id: '3' }
C. { id: '1,2,3' }
D. SyntaxError due to duplicate keys

Solution

  1. Step 1: Understand querystring.parse behavior with duplicates

    querystring.parse keeps the last value for duplicate keys, overwriting previous ones.
  2. Step 2: Analyze given input

    For id=1&id=2&id=3, the last value '3' is kept.
  3. Final Answer:

    { id: '3' } -> Option B
  4. Quick Check:

    Duplicate keys keep last value in querystring.parse [OK]
Hint: Last duplicate key value overwrites previous in parse() [OK]
Common Mistakes:
  • Expecting array for duplicate keys
  • Thinking parse throws error on duplicates
  • Assuming values are concatenated as string