Що таке Express.js?
1. Що таке Express.js
Express.js - це мінімалістичний і гнучкий веб-фреймворк для Node.js, який спрощує створення серверних застосунків, REST API і вебсервісів.
Він надає зручний інтерфейс для:
- обробки HTTP-запитів і відповідей;
- маршрутизації (routing);
- роботи з middleware (проміжними обробниками);
- та інтеграції з базами даних, шаблонами, JSON тощо.
2. Чому з'явився Express
Без Express чистий Node.js виглядає приблизно так:
const http = require('http');
const server = http.createServer((req, res) => {
if (req.url === '/users' && req.method === 'GET') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify([{ name: 'Tim' }]));
} else {
res.writeHead(404);
res.end('Not Found');
}
});
server.listen(3000);Проблеми:
- потрібно вручну обробляти маршрути (
req.url,req.method); - немає нормальної системи middleware;
- немає JSON-парсингу, body-парсера, cookie тощо.
Express вирішує все це з коробки.
3. Приклад простого сервера на Express
const express = require('express');
const app = express();
// Middleware для парсингу JSON
app.use(express.json());
// Маршрут GET
app.get('/', (req, res) => {
res.send('Привіт, Express!');
});
// Маршрут POST
app.post('/users', (req, res) => {
res.json({ message: 'Користувача створено', data: req.body });
});
// Запуск сервера
app.listen(3000, () => console.log('Сервер запущено на порту 3000'));Переваги:
- менше коду;
- читабельна структура маршрутів (
app.get,app.post); - вбудована робота з JSON і middleware;
- легко розширюється.
4. Основні можливості Express.js
| Можливість | Опис |
|---|---|
| Routing | Зручна маршрутизація запитів (app.get('/path', ...)) |
| Middleware | Функції, які обробляють запит до/після маршруту |
| Робота з JSON | Автоматичний парсинг тіла запиту |
| Шаблонізатори | Підтримка ejs, pug, handlebars та ін. |
| Static files | Проста віддача файлів (app.use(express.static('public'))) |
| Error handling | Централізована обробка помилок |
| Integration | Сумісний із будь-якими БД (MongoDB, PostgreSQL, MySQL тощо) |
5. Що таке Middleware в Express
Middleware - це функції, які виконуються між запитом і відповіддю.
Наприклад:
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next(); // передаємо керування далі
});Кожен middleware може:
- змінити
reqчиres; - перервати виконання;
- викликати
next()- щоб передати керування наступному обробнику.
6. Express як база для REST API
Express ідеально підходить для побудови RESTful API:
app.get('/api/users', (req, res) => {...});
app.post('/api/users', (req, res) => {...});
app.put('/api/users/:id', (req, res) => {...});
app.delete('/api/users/:id', (req, res) => {...});Тому Express - стандарт де-факто для API-бекендів на Node.js.
7. Де використовується Express
| Сфера | Застосування |
|---|---|
| REST API | Бекенди для SPA й мобільних застосунків |
| SSR | Серверний рендеринг React/Vue/Nunjucks |
| Ланцюжки middleware | Автентифікація, логування, обробка помилок |
| Microservices | Легкі мікросервіси з JSON-API |
| Backend-for-Frontend | Прошарок між фронтендом і зовнішніми API |
8. Підсумок
Express.js - це веб-фреймворк для Node.js, який робить створення серверів і API простим, швидким і структурованим.
Використовується для:
- обробки HTTP-запитів;
- маршрутизації;
- middleware;
- побудови REST API;
- статичної віддачі файлів і шаблонів.
Це - фундамент більшості Node.js-бекендів (Next.js, NestJS, Sails, Feathers, LoopBack тощо).
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.