Express.js — це мінімалістичний веб-фреймворк для Node.js, який використовується для створення серверних застосунків і API. Він спрощує процес роботи з HTTP-запитами та управління маршрутами, а також дозволяє легко інтегрувати сторонні бібліотеки.
📌 1. Основи Express.js
Express.js працює на основі подій і використовує модель запит-відповідь, яка дозволяє ефективно обробляти запити клієнтів і повертати відповідь.
Основні компоненти:
- Маршрутизація (Routing) – керування шляхами URL.
- Middleware – проміжні обробники, які змінюють запит або відповідь.
- Шаблонізація (View Engines) – генерація HTML-сторінок (опціонально).
- Підключення до бази даних – інтеграція з MongoDB, MySQL, PostgreSQL тощо.
- Обробка помилок – управління винятковими ситуаціями.
🚀 2. Встановлення та створення першого серверу
Щоб розпочати роботу, потрібно встановити Express:
npm init -y # Ініціалізація проєкту
npm install express # Встановлення Express
Створимо простий сервер:
const express = require('express'); // Підключення Express
const app = express(); // Створення екземпляру сервера
app.get('/', (req, res) => {
res.send('Привіт, світ!'); // Відповідь на GET-запит
});
app.listen(3000, () => {
console.log('Сервер запущено на порту 3000');
});
📝 Як це працює?
- Створюємо сервер за допомогою
express()
. - Додаємо маршрут
app.get('/')
, який відповідає на запити. - Викликаємо
app.listen(3000)
, щоб запустити сервер.
🔄 3. Маршрутизація (Routing)
Express дозволяє керувати маршрутами за допомогою таких методів:
app.get()
– для отримання даних.app.post()
– для надсилання даних.app.put()
– для оновлення даних.app.delete()
– для видалення даних.
Приклад маршрутів:
app.get('/users', (req, res) => {
res.send('Список користувачів');
});
app.post('/users', (req, res) => {
res.send('Користувача створено');
});
app.put('/users/:id', (req, res) => {
res.send(`Користувач з ID ${req.params.id} оновлений`);
});
app.delete('/users/:id', (req, res) => {
res.send(`Користувач з ID ${req.params.id} видалений`);
});
🔹 req.params.id
– отримує параметр ID з URL.
⚡ 4. Middleware (проміжні обробники)
Middleware — це функції, які виконуються між отриманням запиту та надсиланням відповіді. Вони можуть: ✔ Обробляти запити
✔ Змінювати дані
✔ Захищати маршрути
Приклад Middleware:
app.use((req, res, next) => {
console.log(`Запит на ${req.url} - ${new Date().toISOString()}`);
next(); // Передаємо управління далі
});
Вбудовані Middleware:
express.json()
– для роботи з JSON.express.urlencoded({ extended: true })
– для обробки form-data.
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
🔗 5. Робота з базами даних
Express.js не має вбудованої підтримки баз даних, але легко інтегрується з MongoDB, PostgreSQL, MySQL тощо.
Приклад з MongoDB (Mongoose):
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydb', {
useNewUrlParser: true,
useUnifiedTopology: true
}).then(() => console.log('MongoDB підключено'))
.catch(err => console.error(err));
const UserSchema = new mongoose.Schema({ name: String, age: Number });
const User = mongoose.model('User', UserSchema);
app.post('/users', async (req, res) => {
const newUser = new User(req.body);
await newUser.save();
res.send('Користувача створено');
});
🔹 Цей код підключається до MongoDB, створює схему та додає користувача.
🎭 6. Використання шаблонізаторів
Express підтримує шаблонні движки (Pug
, EJS
, Handlebars
), які дозволяють створювати динамічні сторінки.
Приклад з Pug:
npm install pug
app.set('view engine', 'pug');
app.get('/hello', (req, res) => {
res.render('index', { title: 'Привіт', message: 'Ласкаво просимо!' });
});
🔹 Створюємо views/index.pug
:
html
head
title= title
body
h1= message
🚧 7. Обробка помилок
Якщо маршруту не існує, можна створити Middleware для обробки помилок:
app.use((req, res, next) => {
res.status(404).send('Сторінка не знайдена');
});
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Щось пішло не так!');
});
📡 8. Статичні файли
Express дозволяє обслуговувати CSS, JS, зображення:
app.use(express.static('public'));
Тепер можна використовувати файли в public/
, наприклад public/style.css
.
🚀 9. Запуск у продакшені
- Використовуйте PM2 для стабільного запуску:
npm install -g pm2 pm2 start server.js
- Використовуйте nginx або Apache для реверс-проксі.
🏁 Висновок
Express.js — це гнучкий, легкий і швидкий фреймворк для створення веб-додатків і API. Його основні переваги: ✔ Мінімалізм
✔ Гнучка маршрутизація
✔ Робота з Middleware
✔ Інтеграція з базами даних
✔ Підтримка шаблонізаторів