Express

Express

Open Source

Fast, unopinionated, minimalist web framework for Node.js.

Backend Frameworks
Node.js Frameworks

Published 29 May 2026 · Last updated 27 September 2026

Scores

Popularity3/5

Historically the most popular Node.js framework; slowly losing ground to newer alternatives.

Learning Curve4/5

Minimal API is deceptively simple; middleware composition and error handling require experience.

Flexibility4/5

Minimal middleware pattern; bring your own router, templating, and project structure.

Performance4/5

Thin middleware layer adds minimal overhead; performance is close to raw Node.js.

Portability4/5

Thin middleware pattern transfers directly to Fastify or Koa.

About Express

Express is a fast, minimal, and unopinionated web framework for Node.js. First released in 2010, it became the default starting point for Node.js web development and remains one of the most downloaded npm packages in history.

Express adds a thin, composable layer on top of Node's built-in http module: a router for mapping HTTP methods and URL patterns to handler functions, a middleware system for processing requests in a pipeline, and a set of HTTP utilities for tasks like setting headers, redirecting, and caching.

The middleware model is Express's core abstraction. Every piece of functionality — body parsing, authentication, logging, CORS, rate limiting, static file serving — is a middleware function with the signature (req, res, next). Third-party middleware packages like passport, multer, morgan, helmet, and cors plug into this pipeline, making Express highly composable without dictating the architecture of your application.

Routing supports parameterised paths (/users/:id), query string parsing, HTTP method chaining, and route-level middleware, providing enough structure for simple APIs while staying out of the way for complex ones.

Express is completely unopinionated about database access, authentication strategy, template engine, or project structure. This flexibility has made it the underlying engine for many higher-level frameworks: NestJS, LoopBack, Feathers, and Keystone all run on Express (or can be configured to). It is also frequently embedded as the HTTP layer in microservice architectures.

Express 5 (stable v5.x released 2024) modernised the framework with native Promise support in middleware and route handlers, eliminating the need for express-async-errors wrappers, and introduced breaking changes around error handling and router API.

Express is maintained under the OpenJS Foundation umbrella.

Key Features

  • Thin HTTP routing layer on top of Node.js built-in http module
  • Composable middleware pipeline with (req, res, next) signature
  • Parameterised routing, query string parsing, and HTTP method chaining
  • Supports 14+ template engines (Pug, EJS, Handlebars, etc.) without lock-in
  • Express 5: native Promise support in middleware — no async wrapper packages needed
  • Massive middleware ecosystem: passport, multer, morgan, helmet, cors, and thousands more
  • Foundation layer for NestJS, LoopBack, Feathers, and other Node.js frameworks

Pros

  • Minimal and unopinionated — no forced structure, ORMs, or authentication patterns
  • Massive, battle-tested middleware ecosystem covering virtually every use case
  • Simple to learn: a working REST API requires fewer than 10 lines of code
  • Extremely well-documented and the most commonly referenced Node.js backend in tutorials
  • Flexible deployment: works as a standalone server, microservice, or embedded HTTP layer

Cons

  • Completely unopinionated — large projects need strong internal conventions to stay maintainable
  • Middleware ordering errors cause subtle, hard-to-debug issues with no framework guardrails
  • Significantly slower than modern alternatives (Fastify, Hono) in benchmark throughput
  • Express 4.x stagnated for years; the Express 5 migration breaks backward compatibility for many projects
  • No built-in TypeScript support — `@types/express` covers types but the DX is behind NestJS

Express Pricing

Open Source

Tech Stacks with Express

MERN Stack

Project

MongoDB, Express, React, Node.js: the classic JavaScript full-stack. A well-trodden path with massive community support and job-market demand.

Frontend

Programming

Databases

Hosting

Authentication

Auth:
Deploy on:
CI/CD add-on:
Containerization add-on:
Observability add-on:
Email add-on:
Payments add-on:
Styling add-on:
Analytics add-on:

Express + MongoDB

Project

Node.js REST API with Express and MongoDB, the classic document-store backend stack.

Programming

Databases

Hosting

Authentication

Auth:
Deploy on:
CI/CD add-on:
Containerization add-on:
Observability add-on:
Email add-on:
Payments add-on:

Vue + Node.js + PostgreSQL

Project

Vue.js SPA with an Express/Node.js API and a PostgreSQL database, self-hosted or serverless on Neon, Prisma Postgres, or PlanetScale.

Frontend

Programming

Hosting

Authentication

Database:
ORM:
Auth:
Deploy on:
CI/CD add-on:
Containerization add-on:
Observability add-on:
Email add-on:
Payments add-on:
Styling add-on:
Analytics add-on:

Tools Related to Express

Works well with Express(7)

Express is commonly used as an HTMX-compatible backend — Express serves Jinja/EJS HTML templates that HTMX can swap into the page for dynamic updates without a frontend framework.

Express + MongoDB is the E and M in the MEAN/MERN stack — JSON document storage pairs naturally with a JavaScript backend that handles JSON natively; Mongoose is the standard ODM.

Express queries Replit Database from the server side: a browser cannot connect to PostgreSQL directly, so Express is the layer between a React frontend and Replit Database.

Express is the standard backend framework Replit's Agent generates alongside a React frontend, and Replit's Node.js environment runs it directly with no separate server to provision.

Clerk can protect Express APIs via JWT verification — used when an Express backend serves an authenticated React/Next.js frontend managed by Clerk.

Keycloak can act as the identity provider for Express applications via OIDC — commonly used in enterprise deployments where Express serves as a backend API secured by a central Keycloak realm.

Integrates with Express(2)

BetterAuth can protect Express APIs via its Express adapter — commonly chosen by teams using Express as a backend that want self-hosted auth without per-MAU pricing.

Mastra ships an Express server adapter and an official getting-started guide for running Mastra routes inside an existing Express app.

Alternatives to Express(11)

Both minimal Node.js web frameworks; Fastify is significantly faster with built-in schema validation and serialization.

Express is unopinionated and minimal; NestJS adds Angular-style modules, dependency injection, and structure on top of Express.

Gin is a high-performance Go framework; Express is a minimal Node.js framework — different language ecosystems, both are minimalist.

Flask is a minimal Python framework; Express is a minimal Node.js framework — same minimalist philosophy, different language ecosystems.

FastAPI is a Python async framework; Express is a minimal Node.js framework — different language ecosystems, both are minimal API builders.

Django is a Python batteries-included framework; Express is a minimal Node.js framework — different language ecosystems.

Tags

JavaScriptOpen SourceWeb DevelopmentAPI Development

Details

License
MIT
Maintained
Yes
Primary language
JavaScript
Domain
Backend
GitHub stars
69.5k
Stars updated
2026-09-23