Про Express
Express - фреймворк для Node.js, який містить функції для мобільних та веб-застосунків. Має у своєму наборі службові методи HTTP та проміжні обробники, щоб створити API або вебсайт.
Для початку потрібно створити директорію проєкту й ініціалізувати його.
Після того, як створиться файл package.json, можна встановлювати залежності, зокрема express.
Тепер створимо файл index.js і під'єднати мінімальну конфігурацію сервера.
Програма запускає сервер та слухає з'єднання на порті 3000.
Створений застосунок повертає у браузері відповідь 'Hello World!' по кореневому URL(/).
Для всіх інших маршрутів відповідь буде 404 - Not Found.
У фреймворка Express є вбудовані функції, які обробляють запити. В залежності від вказаного маршрута (URL) можна сформувати різну відповідь. Кожен маршрут може мати одну або більше функцій обробки.
Структура маршруту за документацією:
app - це екземпляр express програми.
METHOD - метод запиту HTTP (GET, POST, PUT, PATCH, DELETE).
PATH - шлях на сервері, у нашому прикладі вище - це корінь сайту '/'.
HANDLER - функція, яка виконується, якщо маршрут збігається.
Методи запиту HTTP:
GET - робить запит на отримання даних.
POST - надсилає дані до ресурсу. Часто спричиняє зміни станів на сервері.
PUT - замінює всі поточні дані на ресурсі.
DELETE - видаляє вказаний ресурс.
PATCH - використовують для часткової зміни ресурсу.
Це так звані CRUD-операції. Тобто: create (створити), read (прочитати), update (оновити), delete (видалити).
Функція HANDLER приймає щонайменше два параметри. Перший - обʼєкт запиту (request), другий - обʼєкт відповіді (response). Назвати їх можна як завгодно, тільки потрібно дотримуватися їх порядку. Загальноприйнято їх називати req i res.
Для запуску сервера викликають метод app.listen(), до якого передають номер порту і анонімну колбек-функцію, яка виконається при старті запуску сервера.
Запустимо скрипт і подивимося, що відповість консоль:
Express відпрацює запит, тільки якщо є збіг з відповідним шляхом (endpoint) вказаному на сервері. інакше отримаємо помилку. Приміром спробуємо отримати відповідь із сервера за таким запитом:
Додамо обробник маршруту ping:
У прикладі вище у відповідь на запит ми передаємо цілий html-тег, а також статус обробки запиту за допомогою методу status(). Статус можна перевірити в панелі розробника у вкладниці Network.
Можна також, наприклад примусово повернути тільки статус без будь-яких даних. Це роблять за допомогою методу sendStatus().
А можна повернути на запит json за допомогою методу
Регулярні вирази та символьні підстановки у маршрутах запитів
Наступний функціонал краще не використовувати, для уникнення програмних збоїв, але знати про таку можливість потрібно.
У маршрутах, крім простих рядків, можна використовувати регулярні вирази чи спеціальні символи підстановок. Зокрема, можна використовувати такі символи: ?, +, * та ().
Символ ? у маршруті вказує, що попередній символ може зустрічатися 1 раз або відсутній. Наведений нижче шлях маршруту зіставляє png та ping.
Символ + вказує, що попередній символ може зустрічатися 1 і більше разів. Цей шлях маршруту зіставляє ping, piing, piiing і т.д.
Символ * вказує, що на місці цього символу може бути будь-яка кількість символів. Цей шлях маршруту зіставляє ping, pilling, pircing і т.д.
Last updated