Router

Последнее обновление: 23.11.2023

Router позволяет определить дочерние подмаршруты со своими обработчиками относительно некоторого главного маршрута. Например, определим следующее приложение:

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

app.use("/about", function (_, response) {
  response.send("О сайте");
});

app.use("/products/create",function (request, response) {
  response.send("Добавление товара");
});
app.use("/products/:id",function (request, response) {
  response.send(`Товар ${request.params.id}`);
});
app.use("/products/",function (request, response) {
  response.send("Список товаров");
});

app.use("/", function (request, response) {
  response.send("Главная страница");
});
app.listen(3000);

Здесь у нас есть пять маршрутов, которые обрабатываются различными обработчиками. Но три из этих маршрутов начинаются с "/products" и условно относятся к некоторому функционалу по работе с товарами (просмотр списка товаров, просмотр одного товара по id и добавление товара). Объект Router позволяет связать подобный функционал в одно целое и упростить управление им. Например, перепишем предыдущий пример с использованием объекта Router:

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

// определяем Router
const productRouter = express.Router();

// определяем маршруты и их обработчики внутри роутера
productRouter.use("/create", function(request, response){
  response.send("Добавление товара");
});
productRouter.use("/:id", function(request, response){
  response.send(`Товар ${request.params.id}`);
});
productRouter.use("/", function(request, response){
  response.send("Список товаров");
});
// сопоставляем роутер с конечной точкой "/products"
app.use("/products", productRouter);

app.use("/about", function (request, response) {
  response.send("О сайте");
});

app.use("/", function (request, response) {
  response.send("Главная страница");
});
app.listen(3000);

Здесь определен объект productRouter, который обрабатывает все запросы по маршруту "/products". Это главный маршрут. Однако в рамках этого маршрута может быть подмаршрут "/" со своим обработчиком, а также подмаршруты "/:id" и "/create", которые также имеют свои обработчики.

express.Router в Node.js Объект Router в Express и Node.js
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850