Bird
Raised Fist0
Expressframework~20 mins

Method chaining on response in Express - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Express Response Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this Express response chaining?
Consider this Express route handler code. What will the client receive as the response body?
Express
app.get('/test', (req, res) => {
  res.status(201).type('text/plain').send('Success');
});
AThe client receives a plain text response with status 201 and body 'Success'.
BThe client receives a JSON response with status 200 and body 'Success'.
CThe client receives a plain text response with status 200 and body 'Success'.
DThe client receives a JSON response with status 201 and body 'Success'.
Attempts:
2 left
💡 Hint
Remember that method chaining sets status, content type, and then sends the body.
📝 Syntax
intermediate
2:00remaining
Which option correctly chains methods to send JSON with status 404?
Choose the correct Express response chaining to send a JSON error message with status 404.
Ares.status(404).sendJson({ error: 'Not found' });
Bres.json({ error: 'Not found' }).status(404);
Cres.send({ error: 'Not found' }).status(404);
Dres.status(404).json({ error: 'Not found' });
Attempts:
2 left
💡 Hint
The status must be set before sending the response.
🔧 Debug
advanced
2:00remaining
Why does this chained response code cause an error?
Examine the code below. Why will it cause an error or unexpected behavior?
Express
app.get('/error', (req, res) => {
  res.send('First response').status(200);
});
ABecause status(200) is invalid and should be statusCode(200).
BBecause send cannot be called without a JSON object.
CBecause status must be set before send; chaining status after send does nothing or errors.
DBecause res.send returns undefined and chaining is not allowed.
Attempts:
2 left
💡 Hint
Think about the order of method calls and when headers are sent.
❓ state_output
advanced
2:00remaining
What is the final status code sent to the client?
Given this Express code, what status code will the client receive?
Express
app.get('/chain', (req, res) => {
  res.status(202).status(204).send('Done');
});
A202
B204
C200
DError thrown due to multiple status calls
Attempts:
2 left
💡 Hint
Later status calls overwrite earlier ones.
🧠 Conceptual
expert
2:00remaining
Which statement about Express response method chaining is TRUE?
Select the true statement about method chaining on Express response objects.
ACalling res.send() ends the response and further chaining methods have no effect.
BYou can chain res.send() multiple times to send multiple responses.
Cres.json() cannot be chained with res.status() because they return different objects.
Dres.status() must always be called after res.send() to set the status code correctly.
Attempts:
2 left
💡 Hint
Think about when the response is finalized.

Practice

(1/5)
1. What does method chaining on the Express res object allow you to do?
easy
A. Combine multiple response methods in one line for cleaner code
B. Run multiple server instances simultaneously
C. Chain database queries with response methods
D. Automatically restart the server on errors

Solution

  1. Step 1: Understand method chaining concept

    Method chaining means calling multiple methods one after another on the same object.
  2. Step 2: Apply to Express response object

    Express res allows chaining methods like status(), set(), and send() to write concise code.
  3. Final Answer:

    Combine multiple response methods in one line for cleaner code -> Option A
  4. Quick Check:

    Method chaining = Combine methods [OK]
Hint: Think of chaining like linking commands in one line [OK]
Common Mistakes:
  • Confusing method chaining with running multiple servers
  • Mixing database queries with response methods
  • Assuming chaining restarts the server
2. Which of the following is the correct way to chain methods on the Express res object?
easy
A. res.set('Content-Type', 'text/plain').status(200).send('OK')
B. res.status(200).send('OK').set('Content-Type', 'text/plain')
C. res.send('OK').status(200).set('Content-Type', 'text/plain')
D. res.status(200); res.send('OK'); res.set('Content-Type', 'text/plain')

Solution

  1. Step 1: Check method chaining order

    Methods like status() and set() return the res object, allowing chaining before send().
  2. Step 2: Identify correct chain ending

    The chain must end with send() to send the response and finish the chain.
  3. Final Answer:

    res.set('Content-Type', 'text/plain').status(200).send('OK') -> Option A
  4. Quick Check:

    Chain ends with send() [OK]
Hint: Always end chain with send() or end() [OK]
Common Mistakes:
  • Calling send() before setting status or headers
  • Trying to chain after send()
  • Using semicolons instead of chaining dots
3. What will be the output of this Express code snippet?
app.get('/', (req, res) => {
  res.status(404).set('Content-Type', 'text/plain').send('Not Found');
});
medium
A. Response with status 200 and body 'Not Found'
B. Syntax error due to incorrect chaining
C. Response with status 404 and empty body
D. Response with status 404 and body 'Not Found' with plain text content type

Solution

  1. Step 1: Analyze method chain

    The code sets status to 404, sets content type header, then sends 'Not Found' as body.
  2. Step 2: Understand response behavior

    The response will have status 404, header 'Content-Type: text/plain', and body 'Not Found'.
  3. Final Answer:

    Response with status 404 and body 'Not Found' with plain text content type -> Option D
  4. Quick Check:

    Status 404 + send body 'Not Found' [OK]
Hint: Status and headers set before send() affect response [OK]
Common Mistakes:
  • Assuming default status 200 is sent
  • Thinking body is empty
  • Believing chaining causes syntax error
4. Identify the error in this Express response chaining code:
res.send('Hello').status(200).set('Content-Type', 'text/html');
medium
A. No error, code works fine
B. Cannot chain methods after send() because response is already sent
C. Missing semicolon after send()
D. set() method does not exist on res object

Solution

  1. Step 1: Understand send() behavior

    Calling send() sends the response and ends it, so chaining after it is invalid.
  2. Step 2: Identify chaining error

    Methods status() and set() cannot be called after send() because response is finished.
  3. Final Answer:

    Cannot chain methods after send() because response is already sent -> Option B
  4. Quick Check:

    send() ends response, no chaining after [OK]
Hint: send() ends response; no chaining after it [OK]
Common Mistakes:
  • Thinking chaining after send() is allowed
  • Confusing semicolon placement with chaining error
  • Believing set() is not a valid method
5. You want to send a JSON response with status 201 and a custom header X-Custom set to Success. Which of the following chained methods is correct?
hard
A. res.status(201).send({ message: 'Created' }).set('X-Custom', 'Success');
B. res.status(201).json({ message: 'Created' }); res.set('X-Custom', 'Success');
C. res.set('X-Custom', 'Success').status(201).json({ message: 'Created' });
D. res.json({ message: 'Created' }).status(201).set('X-Custom', 'Success');

Solution

  1. Step 1: Order methods correctly

    Set headers first, then status, then send JSON with json() method.
  2. Step 2: Avoid chaining after response sent

    Methods after json() or send() won't work because response ends.
  3. Final Answer:

    res.set('X-Custom', 'Success').status(201).json({ message: 'Created' }); -> Option C
  4. Quick Check:

    Headers + status + json() in chain [OK]
Hint: Set headers and status before json() or send() [OK]
Common Mistakes:
  • Chaining set() after send() or json()
  • Sending response before setting headers
  • Using multiple separate statements instead of chaining
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