Bird
Raised Fist0
Expressframework~20 mins

Status code conventions in Express - Mini Project: Build & Apply

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
Status Code Conventions in Express
📖 Scenario: You are building a simple Express server that responds to client requests. You want to send the correct HTTP status codes to tell the client if the request was successful or if there was an error.
🎯 Goal: Create an Express server with routes that use proper status code conventions to indicate success and error states.
📋 What You'll Learn
Create an Express app variable called app
Add a route /success that sends status code 200 with a success message
Add a route /notfound that sends status code 404 with a not found message
Add a route /error that sends status code 500 with an error message
Use res.status(code).send(message) to set status codes and send responses
💡 Why This Matters
🌍 Real World
Web servers use status codes to tell browsers or clients if a request worked or if there was a problem. This helps users and developers understand what happened.
💼 Career
Knowing how to send correct HTTP status codes is essential for backend developers working with APIs and web servers to communicate clearly with clients.
Progress0 / 4 steps
1
Set up Express app
Create a variable called express by requiring the 'express' module. Then create a variable called app by calling express().
Express
Hint

Use require('express') to import Express and then call it to create the app.

2
Add success route with status 200
Add a GET route /success on app that sends a response with status code 200 and the message 'Request succeeded' using res.status(200).send('Request succeeded').
Express
Hint

Use app.get('/success', (req, res) => { ... }) and inside send status 200 with the message.

3
Add not found route with status 404
Add a GET route /notfound on app that sends a response with status code 404 and the message 'Resource not found' using res.status(404).send('Resource not found').
Express
Hint

Use app.get('/notfound', (req, res) => { ... }) and send status 404 with the message.

4
Add error route with status 500
Add a GET route /error on app that sends a response with status code 500 and the message 'Internal server error' using res.status(500).send('Internal server error').
Express
Hint

Use app.get('/error', (req, res) => { ... }) and send status 500 with the message.

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