DevPath · Aprenda a programar ESPTEN

Middleware no Express

A cadeia de middlewares

Um pipeline ordenado

No Express, os middlewares formam uma cadeia (um pipeline). A requisição os atravessa na ordem em que são registrados, e cada elo decide:

app.use(logger);        // 1.º para TODAS as rotas
app.use(requerAuth);    // 2.º
app.get("/tarefas", listarTarefas); // handler final

Se requerAuth responder com um 401, o handler listarTarefas nunca roda: a requisição já está resolvida.

Global vs. por rota

Middleware de aplicação (logging)

Um caso clássico é registrar cada requisição. O middleware costuma enriquecer o objeto req (adicionar dados a ele) ou anotar algo em algum lugar antes de passar o bastão:

function logger(req, res, next) {
  req.momento = Date.now(); // enriquece a requisição
  console.log(req.method, req.url);
  next(); // imprescindível para não pendurar a requisição!
}

Regra de ouro: um middleware que não responde deve chamar next(). Se ele esquecer, a requisição fica pendurada para sempre.

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← Middleware e nextVer o módulo →