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 objetoApp
:// ... 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");
}
);