Bird
Raised Fist0
Expressframework~20 mins

res.status for status codes in Express - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Express Status Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What does res.status(404).send('Not Found') do?

In an Express app, what is the effect of calling res.status(404).send('Not Found') inside a route handler?

Express
app.get('/item', (req, res) => {
  res.status(404).send('Not Found');
});
ASends a response with HTTP status 200 and body 'Not Found'.
BThrows an error and crashes the server.
CSends a response with HTTP status 404 but no body.
DSends a response with HTTP status 404 and body 'Not Found'.
Attempts:
2 left
💡 Hint

Think about what res.status() sets and what send() does.

📝 Syntax
intermediate
2:00remaining
Which option correctly sets status 201 and sends JSON data?

Choose the correct Express code to send a 201 status with JSON {"success": true}.

Ares.status(201).sendJson({success: true});
Bres.send(201).json({success: true});
Cres.status(201).json({success: true});
Dres.status = 201; res.json({success: true});
Attempts:
2 left
💡 Hint

Remember the correct method to set status and send JSON.

🔧 Debug
advanced
2:00remaining
Why does res.status(500).send() send a blank response?

In Express, what happens if you call res.status(500).send() without any argument?

Express
app.get('/error', (req, res) => {
  res.status(500).send();
});
AIt throws a TypeError because send() needs an argument.
BIt sends a 500 status with an empty body.
CIt sends a 500 status with the default error message.
DIt sends a 200 status with an empty body.
Attempts:
2 left
💡 Hint

Check what happens when send() is called with no argument.

❓ state_output
advanced
2:00remaining
What is the status code after res.status(200).status(404).send('Oops')?

Consider this Express code snippet:

res.status(200).status(404).send('Oops');

What status code will the client receive?

A404
B200
C500
DIt causes an error and no response is sent.
Attempts:
2 left
💡 Hint

Think about method chaining and which status code is last set.

🧠 Conceptual
expert
2:00remaining
Which status code is most appropriate for a successful resource creation?

In REST APIs using Express, which HTTP status code should you set with res.status() when a new resource is successfully created?

A201
B200
C204
D400
Attempts:
2 left
💡 Hint

Think about the standard HTTP codes for resource creation.

Practice

(1/5)
1. What does res.status(404) do in an Express route handler?
easy
A. Changes the request method to GET
B. Sends a 404 error message to the client automatically
C. Sets the HTTP response status code to 404 (Not Found)
D. Stops the server from running

Solution

  1. Step 1: Understand the purpose of res.status

    res.status(code) sets the HTTP status code for the response but does not send the response itself.
  2. Step 2: Identify what 404 means

    404 is the standard HTTP status code meaning "Not Found".
  3. Final Answer:

    Sets the HTTP response status code to 404 (Not Found) -> Option C
  4. Quick Check:

    res.status(404) = sets status code 404 [OK]
Hint: res.status sets code; use res.send or res.json to send [OK]
Common Mistakes:
  • Thinking res.status sends the response automatically
  • Confusing status code with request method
  • Assuming res.status stops server execution
2. Which of the following is the correct way to send a 201 status with a JSON response in Express?
easy
A. res.status.json(201, { message: 'Created' })
B. res.send(201).json({ message: 'Created' })
C. res.json(201, { message: 'Created' })
D. res.status(201).json({ message: 'Created' })

Solution

  1. Step 1: Recall correct chaining syntax

    In Express, res.status(code) sets the status code, then res.json(data) sends the JSON response.
  2. Step 2: Check each option's syntax

    res.status(201).json({ message: 'Created' }) correctly chains res.status(201) with res.json({ message: 'Created' }). Others misuse method order or parameters.
  3. Final Answer:

    res.status(201).json({ message: 'Created' }) -> Option D
  4. Quick Check:

    Correct chaining = res.status().json() [OK]
Hint: Use res.status(code).json(data) to set code and send JSON [OK]
Common Mistakes:
  • Calling res.send before res.status
  • Passing status code as first argument to res.json
  • Using res.status.json which is invalid
3. What will the client receive when this Express handler runs?
app.get('/test', (req, res) => {
  res.status(500);
  res.send('Server error');
});
medium
A. A response with status 200 and body 'Server error'
B. A response with status 500 and body 'Server error'
C. A response with status 500 and empty body
D. An error thrown by Express

Solution

  1. Step 1: Analyze res.status and res.send usage

    res.status(500) sets the HTTP status code to 500. Then res.send('Server error') sends the response body with that status.
  2. Step 2: Determine final response

    The client receives status 500 with the text 'Server error' as the body.
  3. Final Answer:

    A response with status 500 and body 'Server error' -> Option B
  4. Quick Check:

    res.status(500) + res.send('Server error') = 500 + body [OK]
Hint: res.status sets code; res.send sends body with that code [OK]
Common Mistakes:
  • Assuming res.send resets status to 200
  • Thinking status 500 causes Express error automatically
  • Believing response body is empty without res.send argument
4. Identify the error in this Express code snippet:
app.get('/error', (req, res) => {
  res.send('Oops!');
  res.status(400);
});
medium
A. res.status(400) is called after res.send, so status code is ignored
B. res.send cannot be called without res.status first
C. res.status must be called with a string, not a number
D. No error, this code works correctly

Solution

  1. Step 1: Understand response flow in Express

    Once res.send() is called, the response is sent and closed. Any code after it won't affect the response.
  2. Step 2: Analyze order of calls

    Here, res.send('Oops!') sends the response with default status 200. Then res.status(400) is called but ignored because response is already sent.
  3. Final Answer:

    res.status(400) is called after res.send, so status code is ignored -> Option A
  4. Quick Check:

    Call res.status before res.send to set status [OK]
Hint: Always call res.status before res.send or res.json [OK]
Common Mistakes:
  • Calling res.status after res.send expecting status change
  • Thinking res.send requires res.status first
  • Using string instead of number in res.status
5. You want to send a 204 No Content status with no response body in Express. Which code snippet correctly does this?
hard
A. res.status(204).send()
B. All of the above
C. res.status(204).json(null)
D. res.sendStatus(204)

Solution

  1. Step 1: Understand 204 No Content meaning

    Status 204 means the server successfully processed the request but returns no content in the response body (Content-Length: 0).
  2. Step 2: Check each option's behavior

    res.status(204).send() sends status 204 with empty body [check].
    res.status(204).json(null) sends status 204 with JSON "null" body ✗.
    res.sendStatus(204) sends status 204 with "No Content" text body ✗.
    Only A sends no response body.
  3. Final Answer:

    res.status(204).send() -> Option A
  4. Quick Check:

    res.status(204).send() = 204 + empty body [OK]
Hint: Use res.status(204).send() for 204 with no body [OK]
Common Mistakes:
  • Sending body content with 204 status (should be empty)
  • Using res.status(204).json({}) which sends empty object body
  • Not sending response after setting status
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