Bird
Raised Fist0
Expressframework~20 mins

Status code conventions in Express - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Status Code Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding HTTP status codes in Express
Which HTTP status code should you use in Express when a client sends a request with missing required data?
A404 Not Found
B200 OK
C400 Bad Request
D500 Internal Server Error
Attempts:
2 left
💡 Hint
Think about what status code means the client made a bad request.
component_behavior
intermediate
2:00remaining
Express response status for successful resource creation
What status code does Express typically send when a new resource is successfully created?
A201 Created
B202 Accepted
C204 No Content
D200 OK
Attempts:
2 left
💡 Hint
This code means the server created something new.
📝 Syntax
advanced
2:00remaining
Correct usage of status codes in Express response
Which Express code snippet correctly sends a 404 status with a JSON error message?
Ares.json(404, { error: 'Not found' });
Bres.status(404).json({ error: 'Not found' });
Cres.status(404).send({ error: 'Not found' });
Dres.sendStatus(404).json({ error: 'Not found' });
Attempts:
2 left
💡 Hint
Check the chaining and method usage for setting status and sending JSON.
state_output
advanced
2:00remaining
Output status code for unauthorized access in Express
What status code will Express send if you use res.status(401).send('Unauthorized')?
Express
app.get('/secret', (req, res) => {
  res.status(401).send('Unauthorized');
});
A401 Unauthorized with body 'Unauthorized'
B200 OK with body 'Unauthorized'
C403 Forbidden with body 'Unauthorized'
D500 Internal Server Error
Attempts:
2 left
💡 Hint
The status code you set is sent as the HTTP response status.
🔧 Debug
expert
2:00remaining
Identify the error in status code usage
What error occurs when running this Express code snippet?
app.get('/data', (req, res) => {
  res.status(201).send('Created');
  res.status(200).send('OK');
});
Express
app.get('/data', (req, res) => {
  res.status(201).send('Created');
  res.status(200).send('OK');
});
ANo error, sends 201 Created
BSyntaxError: Unexpected token
CNo error, sends 200 OK
DError: Cannot set headers after they are sent to the client
Attempts:
2 left
💡 Hint
Think about sending multiple responses in one request.

Practice

(1/5)
1. In Express, which status code is conventionally used to indicate a successful GET request?
easy
A. 301 Moved Permanently
B. 404 Not Found
C. 500 Internal Server Error
D. 200 OK

Solution

  1. Step 1: Understand HTTP status codes for success

    The status code 200 means the request was successful and the server returned the requested data.
  2. Step 2: Match the code to the GET request success

    For a successful GET request, 200 OK is the standard code to indicate success.
  3. Final Answer:

    200 OK -> Option D
  4. Quick Check:

    Success code for GET = 200 OK [OK]
Hint: 200 means success, use it for successful GET requests [OK]
Common Mistakes:
  • Using 404 for success
  • Using 500 for client errors
  • Confusing 301 with success
2. Which of the following is the correct way to set a 404 status code in Express?
easy
A. res.statusCode = 404; res.send('Not Found')
B. res.sendStatus(200)
C. res.status(404).send('Not Found')
D. res.code(404).send('Not Found')

Solution

  1. Step 1: Recall Express method to set status code

    Express uses res.status(code) to set the HTTP status code before sending a response.
  2. Step 2: Verify correct syntax for 404

    res.status(404).send('Not Found') correctly sets status 404 and sends the message.
  3. Final Answer:

    res.status(404).send('Not Found') -> Option C
  4. Quick Check:

    Use res.status(code) to set status [OK]
Hint: Use res.status(code) before send() to set status [OK]
Common Mistakes:
  • Using res.code() which doesn't exist
  • Setting res.statusCode directly without chaining
  • Using sendStatus(200) for 404
3. What status code will the following Express code send to the client?
app.get('/data', (req, res) => {
  res.status(201).send('Created');
});
medium
A. 201 Created
B. 404 Not Found
C. 200 OK
D. 500 Internal Server Error

Solution

  1. Step 1: Identify the status code set in the code

    The code uses res.status(201) which sets the HTTP status code to 201.
  2. Step 2: Understand the meaning of 201

    Status 201 means the request was successful and a new resource was created.
  3. Final Answer:

    201 Created -> Option A
  4. Quick Check:

    res.status(201) sends 201 Created [OK]
Hint: res.status(201) means resource created successfully [OK]
Common Mistakes:
  • Assuming default 200 status
  • Confusing 201 with 404
  • Ignoring the status() call
4. You wrote this Express code but clients always get status 200 instead of 400:
app.post('/submit', (req, res) => {
  if (!req.body.name) {
    res.status(400);
    res.send('Name is required');
  }
});

What is the main problem?
medium
A. res.send() must come before res.status()
B. res.status(400) must be followed by return to stop execution
C. 400 is not a valid status code
D. res.status() does not set the status code

Solution

  1. Step 1: Analyze the code flow after setting status 400

    res.status(400) sets the status but code continues to run after sending response.
  2. Step 2: Understand Express response behavior

    Without return, Express may continue and send default 200 later or cause errors.
  3. Final Answer:

    res.status(400) must be followed by return to stop execution -> Option B
  4. Quick Check:

    Use return after res.status().send() to stop further processing [OK]
Hint: Add return after res.status().send() to prevent default 200 [OK]
Common Mistakes:
  • Not returning after sending response
  • Calling res.send() before res.status()
  • Thinking 400 is invalid
5. You want to send a 204 No Content status after deleting a resource in Express. Which code snippet correctly does this?
hard
A. res.status(204).send()
B. res.sendStatus(204).send('Deleted')
C. res.status(204).send('Deleted')
D. res.send(204)

Solution

  1. Step 1: Understand 204 No Content meaning

    204 means success but no response body should be sent.
  2. Step 2: Choose code that sends 204 without content

    res.status(204).send() sends status 204 with empty body, which is correct.
  3. Step 3: Identify incorrect options

    res.sendStatus(204).send('Deleted') tries to chain send() after sendStatus(), which is invalid. res.status(204).send('Deleted') sends a body with 204, which breaks the rule. res.send(204) sends 204 as body, not status.
  4. Final Answer:

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

    204 means no content, so send empty response [OK]
Hint: Use res.status(204).send() to send no content response [OK]
Common Mistakes:
  • Sending body with 204 status
  • Using sendStatus(204).send()
  • Sending status code as body