Bird
Raised Fist0
Expressframework~10 mins

HTTP methods for CRUD operations in Express - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to handle creating a new resource using the correct HTTP method.

Express
app.[1]('/items', (req, res) => {
  res.send('Create item');
});
Drag options to blanks, or click blank then click option'
Aget
Bpost
Cput
Ddelete
Attempts:
3 left
💡 Hint
Common Mistakes
Using GET instead of POST for creating resources.
2fill in blank
medium

Complete the code to handle reading a resource using the correct HTTP method.

Express
app.[1]('/items/:id', (req, res) => {
  res.send('Read item ' + req.params.id);
});
Drag options to blanks, or click blank then click option'
Aget
Bpost
Cput
Ddelete
Attempts:
3 left
💡 Hint
Common Mistakes
Using POST instead of GET for reading data.
3fill in blank
hard

Fix the error in the code by choosing the correct HTTP method to update a resource.

Express
app.[1]('/items/:id', (req, res) => {
  res.send('Update item ' + req.params.id);
});
Drag options to blanks, or click blank then click option'
Aput
Bpost
Cget
Ddelete
Attempts:
3 left
💡 Hint
Common Mistakes
Using POST or GET instead of PUT for updating resources.
4fill in blank
hard

Fill both blanks to handle deleting a resource using the correct HTTP method and path.

Express
app.[1]('/items/[2]', (req, res) => {
  res.send('Delete item ' + req.params.id);
});
Drag options to blanks, or click blank then click option'
Adelete
B:id
Cpost
Dget
Attempts:
3 left
💡 Hint
Common Mistakes
Using GET or POST instead of DELETE for removing resources.
Missing the ':id' parameter in the path.
5fill in blank
hard

Fill all three blanks to create a full CRUD route for updating an item by ID using Express.

Express
app.[1]('/items/[2]', (req, res) => {
  const id = req.params.[3];
  res.send('Update item ' + id);
});
Drag options to blanks, or click blank then click option'
Aput
B:id
Cid
Dpost
Attempts:
3 left
💡 Hint
Common Mistakes
Using POST instead of PUT for update.
Not including ':id' in the route path.
Incorrect parameter name when accessing req.params.

Practice

(1/5)
1. Which HTTP method is typically used in Express to retrieve data from a server?
easy
A. PUT
B. POST
C. DELETE
D. GET

Solution

  1. Step 1: Understand HTTP methods purpose

    GET is used to read or retrieve data from the server without changing it.
  2. Step 2: Match method to action

    Since the question asks for retrieving data, GET is the correct method.
  3. Final Answer:

    GET -> Option D
  4. Quick Check:

    Retrieve data = GET [OK]
Hint: GET always reads data without changing it [OK]
Common Mistakes:
  • Confusing POST with GET for reading data
  • Using DELETE to get data
  • Thinking PUT retrieves data
2. Which of the following is the correct Express syntax to handle a POST request to the path /users?
easy
A. app.get('/users', (req, res) => { ... })
B. app.put('/users', (req, res) => { ... })
C. app.post('/users', (req, res) => { ... })
D. app.delete('/users', (req, res) => { ... })

Solution

  1. Step 1: Identify method for creating data

    POST is used to create new data on the server.
  2. Step 2: Match Express syntax to POST

    app.post('/users', ...) correctly handles POST requests to /users.
  3. Final Answer:

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

    POST creates data = app.post() [OK]
Hint: Use app.post() for creating new data routes [OK]
Common Mistakes:
  • Using app.get() for POST requests
  • Confusing app.put() with app.post()
  • Writing app.delete() for creation
3. What will be the response status code if you define this Express route and send a request to PUT /items/5?
app.put('/items/:id', (req, res) => {
  res.status(200).send(`Updated item ${req.params.id}`);
});
medium
A. 200 OK
B. 201 Created
C. 500 Internal Server Error
D. 404 Not Found

Solution

  1. Step 1: Analyze route and method

    The route handles PUT requests to /items/:id, so /items/5 matches with id=5.
  2. Step 2: Check response status code

    The code explicitly sets status 200 and sends a message, so response status is 200 OK.
  3. Final Answer:

    200 OK -> Option A
  4. Quick Check:

    PUT route sends status 200 = 200 OK [OK]
Hint: Check res.status() for response code [OK]
Common Mistakes:
  • Assuming 201 Created for PUT
  • Thinking 404 if route exists
  • Confusing 500 error without code
4. Identify the error in this Express route meant to delete a user by ID:
app.delete('/users/:id', (req, res) => {
  const userId = req.params;
  deleteUser(userId);
  res.send('User deleted');
});
medium
A. req.params should be req.params.id to get the ID
B. deleteUser is not a valid Express method
C. res.send should be res.status(204).send()
D. Route path should be '/user/:id' not '/users/:id'

Solution

  1. Step 1: Check how userId is assigned

    req.params is an object; to get the ID string, use req.params.id.
  2. Step 2: Understand deleteUser usage

    deleteUser likely expects an ID string, so passing the whole params object is wrong.
  3. Final Answer:

    req.params should be req.params.id to get the ID -> Option A
  4. Quick Check:

    Use req.params.id for ID value [OK]
Hint: Use req.params.id to access route parameters [OK]
Common Mistakes:
  • Passing whole req.params object instead of ID
  • Confusing route path naming
  • Assuming deleteUser is Express built-in
5. You want to update a user's email fully using Express. Which HTTP method and route setup is best practice for this operation?
hard
A. app.post('/users/:id', (req, res) => { ... })
B. app.put('/users/:id', (req, res) => { ... })
C. app.get('/users/:id', (req, res) => { ... })
D. app.delete('/users/:id', (req, res) => { ... })

Solution

  1. Step 1: Identify method for full update

    PUT is the HTTP method used to fully update existing data.
  2. Step 2: Match route to user ID

    Route '/users/:id' targets a specific user by ID for update.
  3. Final Answer:

    app.put('/users/:id', (req, res) => { ... }) -> Option B
  4. Quick Check:

    Full update = PUT method [OK]
Hint: Use PUT with ID route for full updates [OK]
Common Mistakes:
  • Using POST for updates instead of creation
  • Using GET or DELETE for updating data
  • Not including :id in route for specific user