Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що таке маршрут (route) в Express?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Маршрут - це зіставлення HTTP-методу (`GET`, `POST` тощо), URL-шляху й функції-обробника `(req, res)`, яка виконується, коли запит відповідає цьому маршруту: `app.METHOD(PATH, HANDLER)`. **Ключове:** маршрути підтримують динамічні параметри (`/users/:id` → `req.params.id`), можуть мати кілька обробників-middleware поспіль і групуватися в окремі файли через `express.Router()`.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## 1. Що таке маршрут (Route) > **Маршрут (route)** в Express.js - це **зіставлення** між: > > - **HTTP-методом** (`GET`, `POST`, `PUT`, `DELETE`, …); > - **URL-шляхом** (`/`, `/users`, `/api/products/:id`); > - і **функцією-обробником (handler)**, > яка виконується, коли запит відповідає цьому маршруту. Іншими словами: маршрут каже Express: *"Якщо надійшов запит* `GET /users`*, виконай ось цей код."* ### Приклад найпростішого маршруту ```javascript const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Головна сторінка'); }); app.get('/about', (req, res) => { res.send('Про нас'); }); app.listen(3000, () => console.log('Сервер запущено')); ``` Якщо відкрити в браузері: - `http://localhost:3000/` → `Головна сторінка` - `http://localhost:3000/about` → `Про нас` ## 2. Формат маршруту ```javascript app.METHOD(PATH, HANDLER) ``` | Елемент | Що це | Приклад | |---|---|---| | `METHOD` | HTTP-метод (у нижньому регістрі) | `get`, `post`, `put`, `delete` | | `PATH` | Шлях, на який реагує маршрут | `'/'`, `'/users'`, `'/users/:id'` | | `HANDLER` | Функція `(req, res)` - обробник | `(req, res) => res.send('OK')` | ## 3. Приклади різних маршрутів ### GET - отримати дані ```javascript app.get('/users', (req, res) => { res.send('Список користувачів'); }); ``` ### POST - створити ```javascript app.post('/users', (req, res) => { res.send('Користувача створено'); }); ``` ### PUT - оновити ```javascript app.put('/users/:id', (req, res) => { res.send(`Користувача ${req.params.id} оновлено`); }); ``` ### DELETE - видалити ```javascript app.delete('/users/:id', (req, res) => { res.send(`Користувача ${req.params.id} видалено`); }); ``` ## 4. Динамічні маршрути Маршрути можуть містити **параметри** - вони позначаються через `:ім'я`. ```javascript app.get('/products/:id', (req, res) => { res.send(`Продукт з ID: ${req.params.id}`); }); ``` `GET /products/123` → відповідь: `Продукт з ID: 123` Параметри можна отримати через `req.params`. ## 5. Групування маршрутів (Router) Для організації коду зручно виносити маршрути в окремі файли через `express.Router()`: ```javascript const express = require('express'); const router = express.Router(); router.get('/', (req, res) => res.send('Список товарів')); router.get('/:id', (req, res) => res.send(`Товар ${req.params.id}`)); module.exports = router; ``` В основному файлі: ```javascript const productsRouter = require('./routes/products'); app.use('/products', productsRouter); ``` Тепер `GET /products` і `GET /products/123` обробляються цим модулем. ## 6. Маршрути можуть мати кілька обробників Можна передавати **кілька функцій** (middleware), які виконуються послідовно: ```javascript app.get('/admin', (req, res, next) => { console.log('Перевірка авторизації...'); next(); }, (req, res) => { res.send('Адмін-панель'); } ); ``` ## 7. Підтримка шаблонів і RegExp у маршрутах Express підтримує **шаблонні маршрути** й **регулярні вирази**: ```javascript app.get('/ab*cd', (req, res) => { res.send('Збіг із шаблоном /ab*cd'); }); ``` Спрацює для `/abcd`, `/ab123cd`, `/abXYZcd` тощо. ## 8. Підсумок > **Маршрут (route)** в Express.js - це правило, яке каже серверу, > як **реагувати на конкретний HTTP-запит**. > > Він складається з: > > - HTTP-методу (`GET`, `POST`, `PUT`, `DELETE` та ін.), > - шляху (`/`, `/users/:id`), > - функції-обробника (`(req, res)`). > > Маршрути: > > - керують логікою застосунку; > - підтримують динамічні параметри; > - можуть об'єднуватися в модулі через `Router`; > - підтримують middleware й шаблонні шляхи.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.