Node.js – Middleware

Subject: nodejs

Node.js – Middleware

In Node.js web application development, particularly when using Express.js, middleware functions act as intermediary handlers in the request-response cycle. Middleware has access to req, res, and a next() function that passes control.


Why Use Middleware?

  • Request Pre-processing: Handle headers, body parsing, or modify the request.
  • Response Modification: Edit or enhance outgoing responses.
  • Cross-Cutting Concerns: Centralize logic like logging, authentication.
  • Flow Control: Middleware can halt or forward requests.
  • Reusability: Use middleware in multiple routes or apps.

How Middleware Works (Pipeline Analogy)

  1. Request enters the server.
  2. Passes through a stack of middleware functions.
  3. Each middleware can:
    • Run logic or modify req/res.
    • Call next() to pass control.
    • End the cycle by sending a response.
  4. If next() is called, final route handler executes.

Middleware Setup Example (Express.js)

Installation:

File: app.js


Test the Server

  • GET http://localhost:3000
  • POST http://localhost:3000/submit-data

Expected JSON Response:


Types of Middleware in Express

  • Application-level: app.use() – global middleware.
  • Router-level: middleware tied to express.Router().
  • Error-handling: 4 arguments (err, req, res, next).
  • Built-in: express.json(), express.static(), etc.
  • Third-party: morgan, helmet, cookie-parser.

Key Takeaways

  • Middleware intercepts and processes requests.
  • Essential for modular code and cross-cutting logic.
  • Always call next() to proceed.
  • Runs sequentially in the order defined.
  • Types include application, router, error-handling, and third-party.
  • Results in cleaner, scalable applications.
Next : REST API Design