Що таке маршрут (route) в Express?
1. Що таке маршрут (Route)
Маршрут (route) в Express.js - це зіставлення між:
- HTTP-методом (
GET,POST,PUT,DELETE, …);- URL-шляхом (
/,/users,/api/products/:id);- і функцією-обробником (handler), яка виконується, коли запит відповідає цьому маршруту.
Іншими словами: маршрут каже Express:
"Якщо надійшов запит GET /users, виконай ось цей код."
Приклад найпростішого маршруту
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. Формат маршруту
app.METHOD(PATH, HANDLER)| Елемент | Що це | Приклад |
|---|---|---|
METHOD | HTTP-метод (у нижньому регістрі) | get, post, put, delete |
PATH | Шлях, на який реагує маршрут | '/', '/users', '/users/:id' |
HANDLER | Функція (req, res) - обробник | (req, res) => res.send('OK') |
3. Приклади різних маршрутів
GET - отримати дані
app.get('/users', (req, res) => {
res.send('Список користувачів');
});POST - створити
app.post('/users', (req, res) => {
res.send('Користувача створено');
});PUT - оновити
app.put('/users/:id', (req, res) => {
res.send(`Користувача ${req.params.id} оновлено`);
});DELETE - видалити
app.delete('/users/:id', (req, res) => {
res.send(`Користувача ${req.params.id} видалено`);
});4. Динамічні маршрути
Маршрути можуть містити параметри - вони позначаються через :ім'я.
app.get('/products/:id', (req, res) => {
res.send(`Продукт з ID: ${req.params.id}`);
});GET /products/123 → відповідь: Продукт з ID: 123
Параметри можна отримати через req.params.
5. Групування маршрутів (Router)
Для організації коду зручно виносити маршрути в окремі файли через express.Router():
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;В основному файлі:
const productsRouter = require('./routes/products');
app.use('/products', productsRouter);Тепер GET /products і GET /products/123 обробляються цим модулем.
6. Маршрути можуть мати кілька обробників
Можна передавати кілька функцій (middleware), які виконуються послідовно:
app.get('/admin',
(req, res, next) => {
console.log('Перевірка авторизації...');
next();
},
(req, res) => {
res.send('Адмін-панель');
}
);7. Підтримка шаблонів і RegExp у маршрутах
Express підтримує шаблонні маршрути й регулярні вирази:
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 й шаблонні шляхи.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.