Middleware de nível de roteador


São middlewares vinculados a uma instância do express.Router():

import express from "express";
 
const router = express.Router();

Esse vinculo ocorre a partir das seguintes funções:

  • router.use()
  • router.HTTP_METHOD()

Exemplos de HTTP Methods

router.get(), router.put(), router.post()

É possível registrar várias funções middlewares, mapeados em um mesmo endpoint, em série com router.use() ou router.HTTP_METHOD():

router.use(function (req, res, next) {
  console.log("Time:", Date.now());
  next();
});
 
router.use(
  "/user/:id",
  function (req, res, next) {
    console.log("Request URL:", req.originalUrl);
    next();
  },
  function (req, res, next) {
    console.log("Request Type:", req.method);
    next();
  }
);

Atenção

Configurar o Router no objeto App:

// ...
app.use("/", router);

Exemplo

// Registrar middleware em nível de roteador com router.get()
router.get("/user/:id", function (req, res, next) {
  console.log(req.params.id);
  res.render("special");
});
 
// Registrar pilha de middlewares em nível de roteador com router.get()
router.get(
  "/user/:id",
  function (req, res, next) {
    if (req.params.id == 0) next("route");
    else next();
  },
  function (req, res, next) {
    res.render("regular");
  }
);

Referências