Skip to main content

request і response

1. Що таке Request і Response

В Express.js:

  • req (request) - об'єкт, що представляє вхідний HTTP-запит від клієнта;
  • res (response) - об'єкт, за допомогою якого сервер відправляє відповідь клієнту.

Коли клієнт робить запит (наприклад, GET /users?id=10), Express автоматично створює ці два об'єкти й передає їх у твій обробник маршруту.

Приклад:

javascript
const express = require('express'); const app = express(); app.get('/hello', (req, res) => { console.log(req.method); // "GET" console.log(req.url); // "/hello" res.send('Привіт, Express!'); }); app.listen(3000);

Клієнт → сервер:

javascript
GET /hello

Сервер відповідає:

javascript
Привіт, Express!

2. Об'єкт req (Request)

req - це об'єкт, що представляє HTTP-запит, який надійшов від клієнта.

Він містить усе, що клієнт відправив: URL, параметри, тіло, заголовки тощо.

Основні властивості req

ВластивістьОписПриклад
req.methodHTTP-метод запиту'GET', 'POST', 'PUT', 'DELETE'
req.urlПовний URL запиту'/users?name=tim'
req.pathЛише шлях без query'/users'
req.queryОб'єкт query-параметрів{ name: 'tim' }
req.paramsПараметри маршруту/users/:id{ id: '123' }
req.bodyТіло запиту (для POST/PUT){ name: 'John' } (при express.json())
req.headersHTTP-заголовки{ 'content-type': 'application/json' }
req.cookiesКуки (за підключеного cookie-parser){ token: 'abc123' }
req.ipIP-адреса клієнта'127.0.0.1'
req.protocol'http' чи 'https''http'
req.get(headerName)Отримати конкретний заголовокreq.get('User-Agent')

Приклад запиту з параметрами:

javascript
app.get('/user/:id', (req, res) => { console.log(req.params.id); // шлях: /user/42 → "42" console.log(req.query); // query: ?name=Tim → { name: 'Tim' } res.send('Користувача знайдено'); });

3. Об'єкт res (Response)

res - це об'єкт, за допомогою якого Express відправляє відповідь клієнту.

Ти можеш:

  • повернути текст, JSON, HTML;
  • задати статус, заголовки, куки;
  • завершити відповідь.

Основні методи res

МетодПризначенняПриклад
res.send(data)Відправити текст, HTML чи JSONres.send('Hello!')
res.json(obj)Відправити JSON-об'єктres.json({ ok: true })
res.status(code)Встановити статус відповідіres.status(404).send('Not Found')
res.set(header, value)Встановити HTTP-заголовокres.set('X-Powered-By', 'Express')
res.redirect(url)Перенаправити клієнтаres.redirect('/login')
res.download(file)Відправити файл на завантаженняres.download('report.pdf')
res.sendFile(path)Відправити файл як відповідьres.sendFile(__dirname + '/index.html')
res.end()Завершити відповідь без тілаres.end()

Приклад з JSON і статусом

javascript
app.post('/api/users', (req, res) => { const user = req.body; console.log(user); res.status(201).json({ message: 'Користувача створено', data: user }); });

Відповідь:

javascript
{ "message": "Користувача створено", "data": { "name": "Тім", "age": 25 } }

4. Як Express пов'язує req і res

Кожного разу, коли клієнт робить HTTP-запит:

javascript
Client[Express App]MiddlewareRoute Handler → res.send()

Express створює пару об'єктів:

  • req - щоб передати дані запиту;
  • res - щоб повернути відповідь.

Вони живуть лише під час обробки одного запиту.

5. Приклад з обома об'єктами

javascript
app.post('/feedback', (req, res) => { const { name, message } = req.body; console.log(`Від ${name}: ${message}`); res.status(200).send(`Дякую, ${name}, ваше повідомлення отримано!`); });

6. Підсумок

req (Request) - об'єкт вхідного запиту: містить метод, шлях, параметри, тіло, заголовки та інші дані клієнта.

res (Response) - об'єкт відповіді: використовується для відправки даних клієнту, встановлення статусу й заголовків.

Разом вони утворюють основу взаємодії між клієнтом і сервером в Express.js.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.