Bird
Raised Fist0
Node.jsframework~5 mins

HTTP methods and CRUD mapping in Node.js

Choose your learning style10 modes available
Introduction

HTTP methods tell a server what action to perform. CRUD mapping helps connect these actions to common database tasks.

When building a web API to manage data like users or products.
When you want to create, read, update, or delete information on a server.
When designing routes in a Node.js backend using frameworks like Express.
When you want to follow standard web practices for data handling.
When you need clear communication between client and server about data actions.
Syntax
Node.js
GET /resource  // Read data
POST /resource  // Create new data
PUT /resource/:id  // Update existing data fully
PATCH /resource/:id  // Update existing data partially
DELETE /resource/:id  // Delete data

Use GET to get or read data without changing it.

POST adds new data, PUT replaces data, and PATCH changes part of data.

Examples
Gets a list of all users.
Node.js
GET /users
Adds a new user to the database.
Node.js
POST /users
Replaces the user with ID 123 with new data.
Node.js
PUT /users/123
Deletes the user with ID 123.
Node.js
DELETE /users/123
Sample Program

This Node.js Express app shows how HTTP methods map to CRUD actions on a simple user list.

GET reads users, POST adds a user, PUT updates a user fully, and DELETE removes a user.

Node.js
import express from 'express';
const app = express();
app.use(express.json());

let users = [{ id: 1, name: 'Alice' }];

// Read all users
app.get('/users', (req, res) => {
  res.json(users);
});

// Create a new user
app.post('/users', (req, res) => {
  const newUser = { id: Date.now(), name: req.body.name };
  users.push(newUser);
  res.status(201).json(newUser);
});

// Update a user fully
app.put('/users/:id', (req, res) => {
  const id = Number(req.params.id);
  const index = users.findIndex(u => u.id === id);
  if (index === -1) return res.status(404).send('User not found');
  users[index] = { id, name: req.body.name };
  res.json(users[index]);
});

// Delete a user
app.delete('/users/:id', (req, res) => {
  const id = Number(req.params.id);
  users = users.filter(u => u.id !== id);
  res.status(204).send();
});

app.listen(3000, () => console.log('Server running on port 3000'));
OutputSuccess
Important Notes

Always use express.json() middleware to parse JSON request bodies.

Use status codes like 201 for created and 204 for no content to communicate results clearly.

PUT replaces the whole resource; PATCH (not shown) updates parts of it.

Summary

HTTP methods map to CRUD: GET=Read, POST=Create, PUT=Update, DELETE=Delete.

Use these methods to build clear and standard web APIs.

Express makes it easy to connect HTTP methods to code actions.

Practice

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

Solution

  1. Step 1: Understand HTTP methods and their purposes

    In RESTful APIs, GET is used to read or retrieve data from the server.
  2. Step 2: Match the method to the action

    POST creates, PUT updates, and DELETE removes data, so only GET fits retrieving data.
  3. Final Answer:

    GET -> Option A
  4. Quick Check:

    Read = GET [OK]
Hint: GET is for reading data, like looking at a book [OK]
Common Mistakes:
  • Confusing POST with GET
  • Using DELETE to fetch data
  • Thinking PUT retrieves data
2. Which of the following Express route definitions correctly handles updating a resource using the HTTP method for update?
easy
A. app.get('/item/:id', handler)
B. app.post('/item/:id', handler)
C. app.put('/item/:id', handler)
D. app.delete('/item/:id', handler)

Solution

  1. Step 1: Identify the HTTP method for updating

    Updating a resource uses the PUT method in RESTful APIs.
  2. Step 2: Match Express method to HTTP method

    Express uses app.put() to handle PUT requests, so app.put('/item/:id', handler) is correct.
  3. Final Answer:

    app.put('/item/:id', handler) -> Option C
  4. Quick Check:

    Update = PUT = app.put() [OK]
Hint: Use app.put() for updates in Express routes [OK]
Common Mistakes:
  • Using app.post() for updates
  • Using app.get() for updates
  • Confusing app.delete() with update
3. Consider this Express code snippet:
app.delete('/user/:id', (req, res) => {
  res.send(`Deleted user ${req.params.id}`);
});

// Client sends DELETE request to /user/42
What will the server respond with?
medium
A. "Updated user 42"
B. "Deleted user 42"
C. "Created user 42"
D. 404 Not Found

Solution

  1. Step 1: Understand the route and HTTP method

    The route listens for DELETE requests on /user/:id. The client sends a DELETE request to /user/42.
  2. Step 2: Analyze the response sent

    The handler sends back the string Deleted user 42 using the id from the URL.
  3. Final Answer:

    "Deleted user 42" -> Option B
  4. Quick Check:

    DELETE request responds with deletion message [OK]
Hint: DELETE routes respond with deletion confirmation [OK]
Common Mistakes:
  • Confusing DELETE with POST response
  • Expecting 404 instead of success message
  • Mixing up URL parameters
4. What is wrong with this Express route for creating a new item?
app.get('/items', (req, res) => {
  // code to add new item
  res.send('Item created');
});
medium
A. Missing route parameter for item ID
B. Route path should be '/item' not '/items'
C. Response message is incorrect
D. GET method should not be used to create data

Solution

  1. Step 1: Identify the HTTP method used

    The route uses GET, which is meant for reading data, not creating.
  2. Step 2: Match method to CRUD action

    Creating new data should use POST, so using GET here is incorrect.
  3. Final Answer:

    GET method should not be used to create data -> Option D
  4. Quick Check:

    Create = POST, not GET [OK]
Hint: Use POST to create, not GET [OK]
Common Mistakes:
  • Using GET to create resources
  • Ignoring HTTP method semantics
  • Assuming route path is the issue
5. You want to build an Express API that allows clients to create, read, update, and delete "products". Which set of route definitions correctly maps HTTP methods to CRUD actions?
hard
A. app.post('/products', createHandler); app.get('/products/:id', readHandler); app.put('/products/:id', updateHandler); app.delete('/products/:id', deleteHandler);
B. app.get('/products', createHandler); app.post('/products/:id', readHandler); app.put('/products', updateHandler); app.delete('/products', deleteHandler);
C. app.put('/products', createHandler); app.get('/products/:id', readHandler); app.post('/products/:id', updateHandler); app.delete('/products/:id', deleteHandler);
D. app.delete('/products', createHandler); app.put('/products/:id', readHandler); app.post('/products/:id', updateHandler); app.get('/products/:id', deleteHandler);

Solution

  1. Step 1: Match each CRUD action to correct HTTP method

    Create = POST, Read = GET, Update = PUT, Delete = DELETE.
  2. Step 2: Check route paths and handlers

    app.post('/products', createHandler); app.get('/products/:id', readHandler); app.put('/products/:id', updateHandler); app.delete('/products/:id', deleteHandler); uses POST /products for create, GET /products/:id for read, PUT /products/:id for update, and DELETE /products/:id for delete, which is correct.
  3. Final Answer:

    app.post('/products', createHandler); app.get('/products/:id', readHandler); app.put('/products/:id', updateHandler); app.delete('/products/:id', deleteHandler); -> Option A
  4. Quick Check:

    POST=create, GET=read, PUT=update, DELETE=delete [OK]
Hint: Remember CRUD: POST, GET, PUT, DELETE order [OK]
Common Mistakes:
  • Mixing POST and GET methods
  • Using wrong paths for actions
  • Assigning update to POST instead of PUT
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