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

Express.js (maggio 2010) di TJ Holowaychuk: minimal web framework per Node.js, middleware composable, routing, ispirato a Sinatra. Licenza MIT.

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 il 22 maggio 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

Impatto

Express sta definendo il pattern middleware pipeline destinato a influenzare i framework successivi. Con Node.js e MongoDB forma l’asse emergente per stack web full-JavaScript.

Nel contesto italiano

Express sta rapidamente diventando la scelta standard per API Node.js nei team JS italiani di agenzie, startup ed enti pubblici.


Riferimenti: Express.js (22 maggio 2010). TJ Holowaychuk. Licenza MIT. Ispirato a Sinatra (Ruby).

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