Express.js: il framework web di riferimento per Node.js

Express.js (novembre 2010) di TJ Holowaychuk: minimal web framework per Node.js, middleware composable, routing, ispirato a Sinatra. Fondamento della maggior parte delle API REST Node.js del decennio 2010-2020.

Open SourceWeb Express.jsNode.jsTJ HolowaychukJavaScriptOpen SourceWebBackend

Node.js ha bisogno di un framework

Node.js (Ryan Dahl, 2009) offre un runtime JavaScript server-side con event loop e I/O non-bloccante, ma l’HTTP API è di basso livello. Scrivere API REST richiede gestire routing, parsing di body, cookie, middleware. Serve un framework minimale che incapsuli i pattern comuni.

Il rilascio

Express.js viene rilasciato dal 16 novembre 2010 da TJ Holowaychuk (autore prolifico di strumenti JavaScript, anche Mocha, Koa, Stylus). Ispirato a Sinatra di Ruby, è un framework minimale per Node. Licenza MIT.

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

app.get('/users/:id', (req, res) => {
  res.json({ id: req.params.id, name: 'Ada' });
});

app.listen(3000);

Caratteristiche

  • Routingapp.get(), app.post(), route con parametri e regex
  • Middlewareapp.use() pipeline componibile per cross-cutting concerns
  • Request/Response helpersres.json(), res.send(), req.params, req.query, req.body
  • Template engines — Pug (ex Jade), EJS, Handlebars supportati
  • Static filesexpress.static() per asset
  • Error handling — middleware a 4 argomenti

Ecosistema middleware

L’ecosistema Express è enorme:

  • body-parser — parse JSON/URL-encoded bodies (integrato in Express 4.16+)
  • cors — Cross-Origin Resource Sharing
  • helmet — security headers
  • morgan — HTTP request logger
  • multer — multipart/form-data upload
  • express-session — session management
  • passport — autenticazione, 500+ strategie (OAuth, JWT, locale)
  • express-rate-limit — rate limiting

Versioni principali

  • 1.0 (2010) — prima release
  • 2.x (2011) — ristrutturazione
  • 3.x (2012) — res.redirect(), routes array
  • 4.0 (aprile 2014) — middleware ora completamente modulare, rimozione di Connect dipendenza
  • 5.0 (beta per molti anni, GA ottobre 2024) — Node.js 18+, async/await nativo, breaking changes minori

TypeScript e successori

Express è puro JavaScript. Per TypeScript-first si sono affermati:

  • NestJS (2017) — framework TS opinato su Express/Fastify, DI, decoratori
  • Fastify (2016) — JSON Schema validation, più veloce di Express
  • Koa (2013, stesso TJ) — middleware async/await-based

Express resta però lo standard de facto per la maggioranza di codebase Node.

Impatto

Express ha definito il pattern middleware pipeline che ha influenzato ogni framework successivo (Koa, Fastify, NestJS, Gin di Go, Chi, perfino Express.py). Le community bootcamp e tutorial “MEAN/MERN stack” (MongoDB + Express + Angular/React + Node) lo hanno reso onnipresente.

Nel contesto italiano

Express è stato lo standard de facto per API Node.js in Italia dal 2012 in poi. Ogni team di sviluppo JS/TS in agenzie, startup, enti pubblici italiani lo ha usato. Molte applicazioni fintech, e-commerce, PA digitale italiane hanno backend Node+Express.


Riferimenti: Express.js (16 novembre 2010). TJ Holowaychuk. Licenza MIT. Ispirato a Sinatra (Ruby). Ecosistema middleware (body-parser, cors, helmet, passport). Express 4 (aprile 2014), 5 (ottobre 2024).

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi