Bird
Raised Fist0
Expressframework~20 mins

req.params for route parameters in Express - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Express Params Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What does req.params contain in this route?
Consider this Express route:
app.get('/user/:id', (req, res) => { res.send(req.params); });

What will be the output if a client requests /user/42?
Express
app.get('/user/:id', (req, res) => { res.send(req.params); });
A{"user":"42"}
B{"params":"42"}
C{}
D{"id":"42"}
Attempts:
2 left
💡 Hint
Look at how the route defines the parameter name after the colon.
📝 Syntax
intermediate
2:00remaining
Which route correctly captures two parameters in req.params?
You want to capture both category and itemId from the URL. Which route definition is correct?
Aapp.get('/shop/:category/:itemId', (req, res) => { res.send(req.params); });
Bapp.get('/shop/:category,itemId', (req, res) => { res.send(req.params); });
Capp.get('/shop/:category&:itemId', (req, res) => { res.send(req.params); });
Dapp.get('/shop/:category?/:itemId?', (req, res) => { res.send(req.params); });
Attempts:
2 left
💡 Hint
Parameters are separated by slashes, not commas or ampersands.
🔧 Debug
advanced
2:00remaining
Why does req.params not contain expected values?
Given this code:
app.get('/post/:postId', (req, res) => { res.send(req.params.post); });

What happens when a client requests /post/123?
Express
app.get('/post/:postId', (req, res) => { res.send(req.params.post); });
AThe response is undefined because req.params.post does not exist.
BThe response is '123' as expected.
CThe server throws a SyntaxError.
DThe response is an empty object {}.
Attempts:
2 left
💡 Hint
Check the exact parameter name used in the route and in the code.
❓ state_output
advanced
2:00remaining
What is the value of req.params for this route and URL?
Route:
app.get('/files/:fileName.:ext', (req, res) => { res.send(req.params); });

URL requested: /files/report.pdf
What does req.params contain?
Express
app.get('/files/:fileName.:ext', (req, res) => { res.send(req.params); });
A{"fileName":"report","ext":".pdf"}
B{"fileName":"report.pdf"}
C{"fileName":"report","ext":"pdf"}
D{}
Attempts:
2 left
💡 Hint
Express supports dot-separated parameters in routes.
🧠 Conceptual
expert
2:00remaining
Which statement about req.params is true?
Choose the correct statement about req.params in Express routes.
A<code>req.params</code> contains key-value pairs for all URL query parameters.
B<code>req.params</code> only contains parameters defined in the route path with colons.
C<code>req.params</code> is always an empty object unless middleware is used.
D<code>req.params</code> merges route parameters and body parameters automatically.
Attempts:
2 left
💡 Hint
Think about how Express separates route parameters from query and body data.

Practice

(1/5)
1. What does req.params represent in an Express route handler?
easy
A. An object containing query string parameters from the URL
B. An array of middleware functions
C. A function to send responses to the client
D. An object containing route parameters extracted from the URL path

Solution

  1. Step 1: Understand the role of req.params

    req.params holds key-value pairs for parameters defined in the route path, extracted from the URL.
  2. Step 2: Differentiate from other request properties

    Query parameters are accessed via req.query, not req.params. Response functions and middleware arrays are unrelated.
  3. Final Answer:

    An object containing route parameters extracted from the URL path -> Option D
  4. Quick Check:

    req.params = route parameters [OK]
Hint: Remember: req.params gets values from URL path, not query [OK]
Common Mistakes:
  • Confusing req.params with req.query
  • Thinking req.params is a function
  • Assuming req.params contains request body data
2. Which of the following is the correct way to define a route with a parameter named id in Express?
easy
A. app.get('/user/*id', (req, res) => { ... })
B. app.get('/user/id', (req, res) => { ... })
C. app.get('/user/:id', (req, res) => { ... })
D. app.get('/user/?id', (req, res) => { ... })

Solution

  1. Step 1: Recognize route parameter syntax

    Express uses a colon : before the parameter name in the route path to define route parameters.
  2. Step 2: Evaluate each option

    app.get('/user/:id', (req, res) => { ... }) correctly uses /:id. Options A, B, and C use incorrect syntax for route parameters.
  3. Final Answer:

    app.get('/user/:id', (req, res) => { ... }) -> Option C
  4. Quick Check:

    Route params start with ':' [OK]
Hint: Use ':' before param name in route path [OK]
Common Mistakes:
  • Omitting the colon before parameter name
  • Using query syntax instead of route param syntax
  • Using wildcard '*' incorrectly
3. Given the route definition app.get('/product/:productId', (req, res) => { res.send(req.params.productId); });, what will be the response when a client requests /product/12345?
medium
A. The string '12345'
B. An error because productId is undefined
C. The string '/product/12345'
D. An empty response

Solution

  1. Step 1: Understand route parameter extraction

    The route defines a parameter productId which captures the part of the URL after /product/.
  2. Step 2: Check what is sent in the response

    The handler sends req.params.productId, which will be the string '12345' from the URL.
  3. Final Answer:

    The string '12345' -> Option A
  4. Quick Check:

    req.params.productId = '12345' [OK]
Hint: req.params.paramName matches URL part after ':' [OK]
Common Mistakes:
  • Expecting full URL or path in req.params
  • Confusing req.params with req.query
  • Assuming undefined if param not accessed correctly
4. Consider this Express route: app.get('/order/:orderId', (req, res) => { const id = req.params.id; res.send(id); }); What is the problem with this code?
medium
A. req.params cannot be used in GET routes
B. The route parameter is named orderId but accessed as id, causing undefined
C. The route path is missing a parameter
D. res.send cannot send strings

Solution

  1. Step 1: Compare route parameter name and access key

    The route defines parameter orderId, but the code accesses req.params.id, which does not exist.
  2. Step 2: Understand the effect of this mismatch

    Accessing req.params.id returns undefined, so res.send(id) sends 'undefined'.
  3. Final Answer:

    The route parameter is named orderId but accessed as id, causing undefined -> Option B
  4. Quick Check:

    Param name mismatch causes undefined [OK]
Hint: Access req.params using exact route param name [OK]
Common Mistakes:
  • Using wrong parameter name in req.params
  • Assuming req.params works like req.body
  • Ignoring case sensitivity in parameter names
5. You want to create an Express route that accepts two parameters: category and itemId. Which code correctly defines the route and sends back a JSON object with both parameters?
hard
A. app.get('/shop/:category/:itemId', (req, res) => { res.json({ category: req.params.category, itemId: req.params.itemId }); });
B. app.get('/shop/:category/:itemId', (req, res) => { res.json({ category: req.query.category, itemId: req.query.itemId }); });
C. app.get('/shop/:category/:itemId', (req, res) => { res.json({ category: req.params.category, itemId: req.query.itemId }); });
D. app.get('/shop/:category/:itemId', (req, res) => { res.json({ category: req.body.category, itemId: req.body.itemId }); });

Solution

  1. Step 1: Define route with two parameters

    The route path /shop/:category/:itemId correctly defines two route parameters.
  2. Step 2: Access parameters from req.params

    Both category and itemId must be accessed from req.params to get values from the URL path.
  3. Step 3: Verify response sends JSON with both parameters

    app.get('/shop/:category/:itemId', (req, res) => { res.json({ category: req.params.category, itemId: req.params.itemId }); }); sends a JSON object with both parameters from req.params. Other options incorrectly use req.query or req.body.
  4. Final Answer:

    app.get('/shop/:category/:itemId', (req, res) => { res.json({ category: req.params.category, itemId: req.params.itemId }); }); -> Option A
  5. Quick Check:

    Use req.params for route params, send JSON [OK]
Hint: Use req.params for all route parameters in URL path [OK]
Common Mistakes:
  • Mixing req.params with req.query or req.body
  • Not defining all parameters in route path
  • Sending plain text instead of JSON when needed
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