👾
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
  1. Теорія
  2. Фреймворк Express

Проміжне ПЗ middleware

Проміжне програмне забезпечення (middleware) це звичайна функція, яка виконується перед виконанням основного коду (основний код може і не виконатися, якщо на етапі middleware це передбачити). Функція middleware приймає три аргументи: об'єкт запиту (req), об'єкт відповіді (res) і функцію next.

Вбудуємо власний middleware у наш файл index.js перед виконанням запитів.

const express = require("express");

const app = express();

app.use((req, res, next) => {
  const time = new Date().toLocaleString('uk-UA');
  req.time = time;

  console.log('Дата:', time);
  next();
});

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log("Server is up and runned on port 3000");
});

Після кожного запиту і перед виконанням коду обробки буде виконуватися цей middleware. Функція у прикладі нічого корисного не виконує, просто пропускає потік через себе, але в консоль завжди виводить повідомлення про дату.

Функції проміжної обробки (middleware) мають доступ до об'єкту запиту (req), об'єкту відповіді (res) і до наступної функції проміжної обробки в циклі "запит-відповідь" програми. Наступна функція проміжної обробки, як правило, позначається змінною next.

Тобто можна, наприклад, на цьому етапі певні дані записати в якусь змінну обʼєкту req і вони будуть доступні в наступних обробниках після middleware.

Основні завдання функцій проміжної обнобки:

  • виконання певного коду

  • внесення змін до об'єктів запитів (req) та відповідей (res).

  • припинення циклу "запит-відповідь" та переривання обробки запиту.

  • виклик наступної функції проміжної обробки зі стеку (next()).

Після завершення виконання свого коду middleware повинна викликати next(). Після цього управління передається наступній функції. Якщо цього не зробити то код програми зависне.

Кроссдоменний доступ на сервер

Може статися, якщо спробувати отримати доступ на наш API сервер доступ з стороннього ресурку, то не буде надано доступу.

terminal
npm i cors

Підключивши cors middleware:

index.js
const cors = require("cors");

app.use(cors());

Так за замовчанням будуть проходити усі запити, але можна кастомно налаштувати визначивши обʼєкт налаштувань.

PreviousPostmanNextПередача даних на сервер

Last updated 1 year ago

Виправити цю ситуацію можна за допомогою пакета .

📚
3️⃣
cors