👾
Node.js
  • 🧑‍💻Full-Stack Web Developer
  • 📚Теорія
    • 1️⃣Основи Node.js
      • Вступ
      • Модулі Node.js
      • Запуск скриптів модулів в Node.js
      • Структура проєкту, експорт-імпорт, index.js як хаб
      • Модулі CommonJS
      • Модулі MJS
      • Модулі ECMAScript
      • Модулі NPM + базові модулі
      • Глобальні змінні
      • Робота з файлами
    • 2️⃣Консольні додатки
      • Створення консольних додатків
    • 3️⃣Фреймворк Express
      • Про Express
      • Nodemon і запуски скриптів
      • Postman
      • Проміжне ПЗ middleware
      • Передача даних на сервер
      • Роутінг
      • CRUD
      • Налаштування лінтера
    • 4️⃣REST API
      • Змінні оточення
      • Логування
      • REST
      • Методи HTTP
      • CORS
      • Формування URL для REST API
      • Контроллери відсутнього роуту і непередбачуваної помилки
      • Валідація даних Joi
      • Рефакторинг додатку за MVC архітектурою
      • Express автогенератор додатку
    • 5️⃣База даних Mongo.DB
      • Основи MongoDB
      • Налаштування Mongo Atlas
      • Встановлення локальної MongoDB і основні команди
    • 6️⃣ODM Mongoose
      • Mongoose
      • Порядок планування бекенд додатку
      • чорнетка
    • 7️⃣Автентифякація WJT
      • чорнетка
      • чорнетка 2
    • 8️⃣Файли
      • чернетка
    • 9️⃣тестування
      • чернетка
    • 🔟Page 14
      • імейли
    • чорнетка докер
    • чорнетка сокети
    • додаткові матеріали
    • 👷Практика
      • 1️⃣Page 4
      • 2️⃣Page 5
      • 3️⃣Page 6
      • 4️⃣Page 7
      • 5️⃣Page 8
      • 6️⃣Page 9
  • Про мене
    • Про мене
Powered by GitBook
On this page
  • Методи Route
  • Метод all
  • Методи відповіді
  • Ланцюжки методів
  1. Теорія
  2. Фреймворк Express

Роутінг

Методи Route

Модуль Express містить клас Router, який може створювати модульні обробники маршрутів. Екземпляр Router - це по суті проміжний обробник і маршрутизатор. Його ще часто називають міні-додатком.

my-router.js
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.

my-router.js
const { Router } = require("express");
const router = Router();

Під'єднаємо модуль маршрутизації my-router.js у додаток:

index.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');
  });

PreviousПередача даних на серверNextCRUD

Last updated 1 year ago

📚
3️⃣