Роутінг
Методи Route
Модуль Express містить клас Router, який може створювати модульні обробники маршрутів. Екземпляр Router - це по суті проміжний обробник і маршрутизатор. Його ще часто називають міні-додатком.
const express = require('express');
const router = express.Router();
// базовий роутер
router.get('/', (req, res) => {
res.send('Базовий роутер');
});
// роутер about
router.get('/about', (req, res) => {
res.send('Роутер About');
});
module.exports = router;
Для легкості сприйняття коду можна було одразу реструктуризувати Router.
const { Router } = require("express");
const router = Router();
Під'єднаємо модуль маршрутизації my-router.js у додаток:
const myRouter= require('./my-router');
...
app.use('/my-router', myRouter);
Цей додаток тепер оброблятиме запити, адресовані ресурсам /my-router та /my-router/about.
Основні методи маршрутизації модуля Express:
get
post
put
delete
patch
Метод all
Особливий метод маршрутизації app.all(), не є похідним від будь-якого методу HTTP. Метод all використовують для завантаження функцій проміжної обробки перед обробкою методів запитів.
Наприклад, у коді нижче обробник запуститься для усіх запитів /users, незалежно від використовуваного методу запиту HTTP.
app.all('/users', (req, res, next) => {
console.log('Anything method.');
next(); // передаємо управління обробнику
});
Методи відповіді
Обʼєкт відповіді (res) має методи для передачі відповіді клієнту. Якщо жоден метод не буде застосований, то клієнтський запит зависне.
res.download()
Запрошення на завантаження файлу
res.end()
Завершення процесу відповіді
res.json()
Надсилання відповіді JSON
res.jsonp()
Надсилання відповіді JSON з підтримкою JSONP
res.redirect()
Перенаправлення відповіді
res.render()
Виведення шаблону представлення
res.send()
Надсилання відповіді різних типів
res.sendFile()
Надсилання файлу у вигляді потоку відповідей
Ланцюжки методів
Часто використовуються різні запити, але з однаковим маршрутом. Для такого випадку існує синтаксис ланцюжків і з використанням методу app.route(). Оскільки шлях однаковий, то зручно створювати модульні маршрути. Це допомагає мінімізувати надмірність та кількість друкарських помилок.
app
.route('/users')
.get((req, res) => {
res.send('Get a list of users');
})
.post((req, res) => {
res.send('Add a user');
})
.put((req, res) => {
res.send('Update user');
});
Last updated