Course Content
Introduction to Node.JS
0/1
Installation
0/1
Feature of Node.JS
0/1
Types of File Operations
0/1
Routing, Params, Request, and Response
0/1
HTTP Status Codes
0/1
Node JS
About Lesson

Types of Middleware In Express.js

1. Application-level Middleware

  • Used throughout the application.
  • Declared using app.use() or app.METHOD().

Simple Example:

JavaScript
const express = require('express');
const app = express();

// Simple logging middleware
app.use((req, res, next) => {
    console.log(`Request received at ${new Date().toISOString()}`);
    next(); // Pass control to the next middleware or route handler
});

app.get('/', (req, res) => {
    res.send('Welcome to Express Middleware!');
});

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

2. Router-level Middleware

  • Works specifically with express.Router().
  • Used to group route-specific middleware.

Simple Example:

JavaScript
const router = express.Router();

// Middleware for specific routes
router.use((req, res, next) => {
    console.log('Router middleware executed');
    next();
});

router.get('/users', (req, res) => {
    res.send('User List');
});

app.use('/api', router);

3. Built-in Middleware

  • Express provides middleware functions out of the box:
    • express.json() – Parses JSON request body.
    • express.urlencoded({ extended: true }) – Parses URL-encoded payloads.
    • express.static(‘public’) – Serves static files.

Example:

JavaScript
app.use(express.json()); // Parse JSON request body

4. Error-handling Middleware

  • Used for handling errors in Express applications.
  • Takes four arguments: err, req, res, next.

Simple Example:

JavaScript
app.use((err, req, res, next) => {
    console.error('Error:', err.message);
    res.status(500).send('Something went wrong!');
});

5.Third-part Middleware

  • External middleware modules that can be used in Express applications.
  • Installed via npm.

Popular Third-party Middleware:

  • cors – Enables Cross-Origin Resource Sharing.
  • morgan – Logs HTTP requests.
  • helmet – Enhances security.

Example of Using Morgan:

JavaScript
const morgan = require('morgan');
app.use(morgan('dev'));