#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
4 min read
Question 2 of 62easy

What is Middleware in Express.js?

Understanding Express middleware and its usage.

What You'll Learn

  • What middleware is
  • Types of middleware
  • Creating custom middleware

What is Middleware?

Middleware functions have access to request, response objects, and the next middleware function. They can execute code, modify req/res, end the request, or call next().

Middleware Flow

Request → Middleware 1 → Middleware 2 → Route Handler → Response

Types of Middleware

code.jsJavaScript
const express = require('express');
const app = express();

// 1. Application-level middleware
app.use((req, res, next) => {
  console.log('Time:', Date.now());
  next();
});

// 2. Router-level middleware
const router = express.Router();
router.use(authMiddleware);

// 3. Built-in middleware
app.use(express.json());
app.use(express.static('public'));

// 4. Error-handling middleware
app.use((err, req, res, next) => {
  res.status(500).json({ error: err.message });
});

Custom Auth Middleware Example

code.jsJavaScript
const authMiddleware = (req, res, next) => {
  const token = req.headers.authorization;

  if (!token) {
    return res.status(401).json({ error: 'No token' });
  }

  try {
    req.user = jwt.verify(token, SECRET);
    next();
  } catch {
    res.status(401).json({ error: 'Invalid token' });
  }
};

app.get('/protected', authMiddleware, (req, res) => {
  res.json({ user: req.user });
});