Loading

Quipoin Menu

Learn • Practice • Grow

express-js / Express.js HTTP Methods
tutorial

Express.js HTTP Methods

When you interact with a website, you're performing different actions: viewing a page, submitting a form, updating your profile, or deleting a post. HTTP methods (also called HTTP verbs) tell the server what kind of action you want to perform. Express provides methods for all standard HTTP methods.

Common HTTP Methods

MethodPurposeExample
GETRetrieve dataView a webpage, fetch API data
POSTCreate new dataSubmit a form, create a user
PUTUpdate existing data (replace)Update entire user profile
DELETERemove dataDelete a post, remove a user
PATCHPartial updateUpdate only email address

Think of HTTP methods like verbs in a sentence. GET means "show me", POST means "create new", PUT means "replace", and DELETE means "remove".

GET Routes

GET is used to retrieve data. It should never modify data on the server.
<!-- Fetch all users -->
app.get('/api/users', (req, res) => {
  const users = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }];
  res.json(users);
});

<!-- Fetch a single user -->
app.get('/api/users/:id', (req, res) => {
  const userId = req.params.id;
  <!-- Fetch user from database -->
  res.json({ id: userId, name: 'John' });
});

POST Routes

POST creates new resources. Data is typically sent in the request body.
<!-- Need this to parse JSON bodies -->
app.use(express.json());

app.post('/api/users', (req, res) => {
  const newUser = req.body; <!-- Data from client -->
  <!-- Save to database -->
  res.status(201).json({ message: 'User created', user: newUser });
});

PUT Routes

PUT completely replaces an existing resource.
app.put('/api/users/:id', (req, res) => {
  const userId = req.params.id;
  const updatedUser = req.body;
  <!-- Replace user in database -->
  res.json({ message: `User ${userId} updated`, user: updatedUser });
});

DELETE Routes

DELETE removes a resource.
app.delete('/api/users/:id', (req, res) => {
  const userId = req.params.id;
  <!-- Remove from database -->
  res.json({ message: `User ${userId} deleted` });
});

Complete CRUD Example

Here's a complete example with all methods for a simple resource:
const express = require('express');
const app = express();
app.use(express.json());

let users = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' }
];

<!-- GET all users -->
app.get('/users', (req, res) => {
  res.json(users);
});

<!-- GET single user -->
app.get('/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ message: 'User not found' });
  res.json(user);
});

<!-- POST create user -->
app.post('/users', (req, res) => {
  const newUser = { id: users.length + 1, ...req.body };
  users.push(newUser);
  res.status(201).json(newUser);
});

<!-- PUT update user (replace) -->
app.put('/users/:id', (req, res) => {
  const index = users.findIndex(u => u.id === parseInt(req.params.id));
  if (index === -1) return res.status(404).json({ message: 'User not found' });
  users[index] = { id: parseInt(req.params.id), ...req.body };
  res.json(users[index]);
});

<!-- DELETE user -->
app.delete('/users/:id', (req, res) => {
  users = users.filter(u => u.id !== parseInt(req.params.id));
  res.status(204).send();
});

Two Minute Drill

  • HTTP methods define the action type: GET (read), POST (create), PUT (replace), DELETE (remove).
  • Express provides methods for each: `app.get()`, `app.post()`, `app.put()`, `app.delete()`.
  • Use `express.json()` middleware to parse JSON request bodies.
  • Always return appropriate status codes (200, 201, 404, 500, etc.).
  • Combine these methods to create RESTful APIs.

Need more clarification?

Drop us an email at career@quipoinfotech.com