Bird
Raised Fist0
Node.jsframework~5 mins

URLSearchParams for query strings 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 is URLSearchParams used for in Node.js?

URLSearchParams helps you work with query strings in URLs. It lets you easily read, add, or change parameters in the query part of a URL.

Click to reveal answer
beginner
How do you create a URLSearchParams object from a query string?

You pass the query string (like 'name=John&age=30') to the URLSearchParams constructor, for example: new URLSearchParams('name=John&age=30').

Click to reveal answer
beginner
How can you get the value of a parameter named id from a URLSearchParams object?

Use the get method: params.get('id') returns the value of the id parameter or null if it doesn't exist.

Click to reveal answer
beginner
How do you add a new parameter page=2 to an existing URLSearchParams object?

Use the append method: params.append('page', '2'). This adds the parameter without removing existing ones.

Click to reveal answer
beginner
How do you convert a URLSearchParams object back to a query string?

Use the toString() method: params.toString() returns the query string like 'name=John&age=30'.

Click to reveal answer
Which method gets the value of a query parameter from a URLSearchParams object?
Aget()
Bset()
Cappend()
Ddelete()
How do you create a URLSearchParams object from the string 'color=blue&size=medium'?
AURLSearchParams.parse('color=blue&size=medium')
Bnew URLSearchParams('color=blue&size=medium')
CURLSearchParams.create('color=blue&size=medium')
Dnew URLSearchParams({color:'blue', size:'medium'})
What does params.append('key', 'value') do?
AAdds a new parameter without removing existing ones
BReplaces the value of an existing parameter
CDeletes the parameter named 'key'
DReturns the value of 'key'
Which method removes a parameter from URLSearchParams?
Aremove()
Bclear()
Cpop()
Ddelete()
How do you get the full query string from a URLSearchParams object?
AvalueOf()
BtoJSON()
CtoString()
Dstringify()
Explain how to create, read, and add parameters using URLSearchParams in Node.js.
Think about how you handle a list of key-value pairs in a URL.
You got /3 concepts.
    Describe how URLSearchParams helps manage query strings compared to manual string manipulation.
    Consider the challenges of editing URL query strings by hand.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the URLSearchParams class in Node.js primarily help you do?
      easy
      A. Easily read and modify URL query strings
      B. Create HTTP servers
      C. Parse JSON data
      D. Manage file system paths

      Solution

      1. Step 1: Understand the purpose of URLSearchParams

        URLSearchParams is designed to work with the query part of URLs, making it easy to read and change parameters.
      2. Step 2: Compare with other options

        Creating servers, parsing JSON, or managing file paths are unrelated to URLSearchParams.
      3. Final Answer:

        Easily read and modify URL query strings -> Option A
      4. Quick Check:

        URLSearchParams = query string helper [OK]
      Hint: URLSearchParams = query string helper [OK]
      Common Mistakes:
      • Confusing URLSearchParams with server or file system modules
      • Thinking it parses JSON data
      • Assuming it manages entire URLs, not just query strings
      2. Which of the following is the correct way to create a URLSearchParams object from a query string in Node.js?
      easy
      A. const params = new URLSearchParams({name: 'John', age: 30});
      B. const params = URLSearchParams('?name=John&age=30');
      C. const params = URLSearchParams({name: 'John', age: 30});
      D. const params = new URLSearchParams('?name=John&age=30');

      Solution

      1. Step 1: Check the correct syntax for creating URLSearchParams

        The constructor requires the new keyword and accepts a query string like '?name=John&age=30'.
      2. Step 2: Identify incorrect options

        Options without new or passing an object directly without conversion are invalid.
      3. Final Answer:

        const params = new URLSearchParams('?name=John&age=30'); -> Option D
      4. Quick Check:

        Use new with query string [OK]
      Hint: Always use 'new' with URLSearchParams and a query string [OK]
      Common Mistakes:
      • Omitting the 'new' keyword
      • Passing an object directly without converting to string
      • Using URLSearchParams as a function, not a constructor
      3. What will the following code output?
      const params = new URLSearchParams('color=blue&size=medium');
      params.set('size', 'large');
      console.log(params.toString());
      medium
      A. color=blue&size=medium
      B. color=blue
      C. color=blue&size=large
      D. size=large&color=blue

      Solution

      1. Step 1: Understand params.set()

        The set method updates the value of the 'size' parameter from 'medium' to 'large'.
      2. Step 2: Check the output of toString()

        The toString() method returns the query string with updated parameters in the order they were added.
      3. Final Answer:

        color=blue&size=large -> Option C
      4. Quick Check:

        set() updates value, toString() shows updated string [OK]
      Hint: set() changes value; toString() shows updated query [OK]
      Common Mistakes:
      • Assuming set() adds a new parameter without replacing
      • Thinking order of parameters changes
      • Forgetting to call toString() to see the string
      4. Identify the error in this code snippet:
      const params = new URLSearchParams('page=1&limit=10');
      params.append('page', 2);
      console.log(params.get('page'));
      medium
      A. get() returns only the first 'page' value, ignoring the appended one
      B. append() replaces the existing 'page' parameter instead of adding
      C. URLSearchParams constructor cannot accept strings
      D. append() requires both parameters to be strings

      Solution

      1. Step 1: Understand append() behavior

        append() adds another 'page' parameter, so now there are two 'page' keys.
      2. Step 2: Understand get() behavior

        get() returns the first value for 'page', which is '1', ignoring the appended '2'.
      3. Final Answer:

        get() returns only the first 'page' value, ignoring the appended one -> Option A
      4. Quick Check:

        get() returns first value when duplicates exist [OK]
      Hint: get() returns first value; use getAll() for all [OK]
      Common Mistakes:
      • Thinking append() replaces existing keys
      • Expecting get() to return all values
      • Assuming constructor rejects strings
      5. You want to build a URL query string from an object { search: 'books', page: 2, filter: '' } but want to exclude empty values. Which code correctly creates the query string using URLSearchParams?
      hard
      A. const params = new URLSearchParams({ search: 'books', page: '2', filter: '' }); console.log(params.toString());
      B. const params = new URLSearchParams(); for (const [key, value] of Object.entries({ search: 'books', page: 2, filter: '' })) { if (value) params.append(key, value.toString()); } console.log(params.toString());
      C. const params = new URLSearchParams(); Object.entries({ search: 'books', page: 2, filter: '' }).forEach(([k,v]) => params.set(k,v)); console.log(params.toString());
      D. const params = new URLSearchParams(); for (const key in { search: 'books', page: 2, filter: '' }) { params.append(key, ''); } console.log(params.toString());

      Solution

      1. Step 1: Understand the goal to exclude empty values

        We want to skip keys with empty strings, so we check if the value is truthy before adding.
      2. Step 2: Analyze each option

        const params = new URLSearchParams({ search: 'books', page: '2', filter: '' }); console.log(params.toString()); includes empty 'filter' value. const params = new URLSearchParams(); for (const [key, value] of Object.entries({ search: 'books', page: 2, filter: '' })) { if (value) params.append(key, value.toString()); } console.log(params.toString()); adds only truthy values. const params = new URLSearchParams(); Object.entries({ search: 'books', page: 2, filter: '' }).forEach(([k,v]) => params.set(k,v)); console.log(params.toString()); adds all including empty. const params = new URLSearchParams(); for (const key in { search: 'books', page: 2, filter: '' }) { params.append(key, ''); } console.log(params.toString()); adds empty strings for all keys.
      3. Final Answer:

        Option B correctly filters out empty values before appending -> Option B
      4. Quick Check:

        Filter empty values before append() [OK]
      Hint: Check value truthiness before adding to URLSearchParams [OK]
      Common Mistakes:
      • Passing object directly without filtering empty values
      • Using set() without filtering, adding empty keys
      • Appending empty strings for all keys