Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що таке Express.js?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Express.js - мінімалістичний і гнучкий веб-фреймворк для Node.js, який спрощує створення серверних застосунків, REST API й вебсервісів: дає зручний роутинг, систему middleware, парсинг JSON і статичну роздачу файлів із коробки. **Ключове:** без Express доводиться вручну обробляти `req.url`/`req.method`, писати власний парсинг тіла запиту й маршрутизацію - Express вирішує все це і став де-факто стандартом для API-бекендів на Node.js (і фундаментом для Next.js, NestJS та інших).Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## 1. Що таке Express.js > **Express.js** - це **мінімалістичний і гнучкий веб-фреймворк** для Node.js, > який спрощує створення **серверних застосунків**, **REST API** і **вебсервісів**. Він надає зручний інтерфейс для: - обробки **HTTP-запитів і відповідей**; - маршрутизації (routing); - роботи з **middleware** (проміжними обробниками); - та інтеграції з базами даних, шаблонами, JSON тощо. ## 2. Чому з'явився Express Без Express чистий Node.js виглядає приблизно так: ```javascript 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 ```javascript 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 - це функції, які виконуються **між запитом і відповіддю**. Наприклад: ```javascript app.use((req, res, next) => { console.log(`${req.method} ${req.url}`); next(); // передаємо керування далі }); ``` Кожен middleware може: - змінити `req` чи `res`; - перервати виконання; - викликати `next()` - щоб передати керування наступному обробнику. ## 6. Express як база для REST API Express ідеально підходить для побудови **RESTful API**: ```javascript 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 тощо).Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.