Bird
Raised Fist0
Expressframework~5 mins

Query string parsing in Express - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a query string in a URL?
A query string is the part of a URL after the question mark (?) that contains key-value pairs used to send data to the server.
Click to reveal answer
beginner
How does Express.js parse query strings by default?
Express.js automatically parses query strings into an object accessible via req.query in route handlers.
Click to reveal answer
beginner
Example: What does req.query contain for URL /search?term=books&sort=asc?
{ term: 'books', sort: 'asc' } - an object with keys and values from the query string.
Click to reveal answer
beginner
How can you access a specific query parameter in Express?
Use req.query.parameterName. For example, req.query.term gets the value of the 'term' parameter.
Click to reveal answer
beginner
What happens if a query parameter is missing in the URL?
The corresponding key in req.query will be undefined or not present, so you should check before using it.
Click to reveal answer
In Express.js, where do you find parsed query string parameters?
Areq.params
Breq.body
Creq.query
Dreq.headers
What symbol starts the query string in a URL?
A?
B&
C#
D/
If the URL is '/items?category=books&price=low', what is req.query.price?
Abooks
Blow
Ccategory
Dundefined
What type of data is req.query in Express?
AObject
BString
CArray
DNumber
If a query parameter is missing, what does req.query.parameter return?
Aerror
Bnull
Cempty string
Dundefined
Explain how Express.js handles query string parsing and how you access query parameters in a route.
Think about how URLs send extra data and how Express makes it easy to read.
You got /4 concepts.
    Describe what happens if a query parameter is not included in the URL and how your Express code should handle it.
    Consider what happens when you ask for something that isn't there.
    You got /3 concepts.

      Practice

      (1/5)
      1. In Express, which object lets you access the query parameters from a URL like /search?term=books?
      easy
      A. req.query
      B. req.params
      C. req.body
      D. req.url

      Solution

      1. Step 1: Understand Express request objects

        Express provides different objects to access parts of the request: req.params for route params, req.body for POST data, and req.query for query strings.
      2. Step 2: Identify query string access

        The query string is the part after ? in a URL. Express parses it into req.query as an object.
      3. Final Answer:

        req.query -> Option A
      4. Quick Check:

        Query string = req.query [OK]
      Hint: Query strings are in req.query object in Express [OK]
      Common Mistakes:
      • Confusing req.params with req.query
      • Trying to read query from req.body
      • Using req.url directly without parsing
      2. Which of the following is the correct way to read a query parameter named page in an Express route handler?
      easy
      A. const page = req.query.page;
      B. const page = req.body.page;
      C. const page = req.params.page;
      D. const page = req.url.page;

      Solution

      1. Step 1: Recall query parameter access syntax

        Query parameters are accessed via req.query as key-value pairs.
      2. Step 2: Match correct syntax

        To get the page parameter, use req.query.page. Other options access wrong objects.
      3. Final Answer:

        const page = req.query.page; -> Option A
      4. Quick Check:

        Query param 'page' = req.query.page [OK]
      Hint: Use req.query.paramName to get query parameters [OK]
      Common Mistakes:
      • Using req.params for query parameters
      • Trying to read query from req.body
      • Accessing req.url.page which is undefined
      3. Given this Express route handler:
      app.get('/items', (req, res) => {
        const limit = Number(req.query.limit) || 10;
        res.send(`Limit is ${limit}`);
      });

      What will be the response if the URL is /items?limit=5?
      medium
      A. "Limit is 10"
      B. "Limit is undefined"
      C. "Limit is 5"
      D. "Limit is NaN"

      Solution

      1. Step 1: Convert query string value to number

        The code uses Number(req.query.limit) to convert the string '5' to number 5.
      2. Step 2: Use default if conversion fails

        If conversion results in 0 or NaN, it defaults to 10. Here, 5 is valid, so limit = 5.
      3. Final Answer:

        "Limit is 5" -> Option C
      4. Quick Check:

        Number('5') = 5, so output = "Limit is 5" [OK]
      Hint: Convert query strings to number before use [OK]
      Common Mistakes:
      • Not converting string to number
      • Assuming req.query.limit is a number
      • Ignoring default fallback logic
      4. Consider this Express route:
      app.get('/search', (req, res) => {
        const term = req.query.term.toLowerCase();
        res.send(term);
      });

      What error will occur if the URL is /search (no query parameter)?
      medium
      A. SyntaxError: Unexpected token
      B. TypeError: Cannot read property 'toLowerCase' of undefined
      C. ReferenceError: term is not defined
      D. No error, response is empty string

      Solution

      1. Step 1: Check for missing query parameter

        If term is missing, req.query.term is undefined.
      2. Step 2: Calling method on undefined causes error

        Calling toLowerCase() on undefined throws a TypeError.
      3. Final Answer:

        TypeError: Cannot read property 'toLowerCase' of undefined -> Option B
      4. Quick Check:

        Undefined.toLowerCase() throws TypeError [OK]
      Hint: Check if query param exists before using methods [OK]
      Common Mistakes:
      • Assuming query param always exists
      • Not handling undefined values
      • Expecting empty string instead of error
      5. You want to handle a query parameter sort that can be either asc or desc. If missing or invalid, default to asc. Which code snippet correctly implements this in Express?
      hard
      A. const sort = req.query.sort === 'asc' ? 'asc' : req.query.sort === 'desc' ? 'desc' : 'desc';
      B. const sort = req.query.sort || 'asc';
      C. const sort = req.query.sort === 'asc' ? 'asc' : 'desc';
      D. const sort = ['asc', 'desc'].includes(req.query.sort) ? req.query.sort : 'asc';

      Solution

      1. Step 1: Validate query parameter value

        We must check if req.query.sort is either 'asc' or 'desc'. Using includes() on an array is a clean way.
      2. Step 2: Provide default if invalid or missing

        If the value is not in the allowed list, default to 'asc'. This avoids invalid values.
      3. Final Answer:

        const sort = ['asc', 'desc'].includes(req.query.sort) ? req.query.sort : 'asc'; -> Option D
      4. Quick Check:

        Check allowed values with includes() and default [OK]
      Hint: Use includes() to validate query param values before use [OK]
      Common Mistakes:
      • Not validating allowed values
      • Using simple || which accepts invalid strings
      • Overcomplicating with nested ternaries
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard