Створення Власного Проміжного Програмного Забезпечення
Свайпніть щоб показати меню
У Express.js можна створювати власні функції проміжного програмного забезпечення (middleware) за допомогою методу app.use(). Такі функції приймають три параметри: req (об'єкт запиту), res (об'єкт відповіді) та next (функція для передачі керування наступному middleware у ланцюжку). Власне middleware можна застосовувати глобально до всіх маршрутів або до окремих маршрутів, вказавши шлях маршруту.
Створення власного middleware
Ось базовий приклад власної функції middleware, яка фіксує мітку часу та URL кожного вхідного запиту:
app.use((req, res, next) => {
const timestamp = new Date().toISOString();
const url = req.url;
console.log(`[${timestamp}] ${url}`);
next(); // Pass control to the next middleware.
});
У цьому прикладі власне middleware виводить у консоль мітку часу та URL кожного вхідного запиту. Виклик функції next() передає керування наступному middleware у ланцюжку.
Приклад із практики: поєднання вбудованого та власного middleware
Ось практичний приклад, де використовується вбудоване middleware Express для розбору JSON-даних, а потім створюється власне middleware для їх валідації перед подальшою обробкою:
const express = require('express');
const app = express();
// Use built-in middleware to parse JSON data.
app.use(express.json());
// Custom middleware to validate JSON data.
app.use((req, res, next) => {
const jsonData = req.body;
if (!jsonData || Object.keys(jsonData).length === 0) {
// If the JSON data is missing or empty, send an error response.
return res.status(400).json({ error: 'Invalid JSON data' });
}
// Data is valid; proceed to the next middleware or route.
next();
});
// Route that expects valid JSON data.
app.post('/api/data', (req, res) => {
const jsonData = req.body;
res.status(200).json({ message: 'Data received', data: jsonData });
});
app.listen(3000, () => {
console.log('Server is running on port 3000.');
});
У цьому прикладі:
- Використовується вбудоване middleware
express.json()для розбору вхідних JSON-даних; - Створюється власне middleware, яке перевіряє, чи розібрані JSON-дані відсутні або порожні. Якщо так, надсилається відповідь з помилкою 400 Bad Request. Якщо дані валідні, викликається
next()для переходу до маршруту; - Маршрут
/api/dataочікує валідні JSON-дані. Якщо власне middleware валідує дані, обробник маршруту їх отримує та надсилає відповідь про успішне отримання.
-
Рядок 1: імпортує фреймворк Express.js;
-
Рядок 2: створює екземпляр додатку Express шляхом виклику
express(). Отриманий об'єктappвикористовується для визначення маршрутів, проміжного програмного забезпечення (middleware) та обробки HTTP-запитів; -
Рядок 5: вмикає вбудоване проміжне програмне забезпечення
express.json(). Це middleware автоматично розбирає вхідні тіла запитів у форматі JSON і робить дані доступними черезreq.body; -
Рядки 8-18: визначають власне проміжне програмне забезпечення для валідації вхідних JSON-даних;
-
перевірка наявності даних у
req.body; -
повернення відповіді
400 Bad Request, якщо тіло запиту відсутнє або порожнє;- виклик
next(), якщо JSON-дані валідні, і перехід до наступного middleware або обробника маршруту;
- виклик
-
Рядки 21-24: визначають маршрут
POSTза адресою/api/data;- отримання надісланих JSON-даних із
req.body;
- отримання надісланих JSON-даних із
-
повернення відповіді
200 OK, що містить підтвердження та отримані дані; -
Рядки 26-28: запуск додатку Express і початок прослуховування запитів на порту
3000.
Цей приклад демонструє використання як вбудованого, так і власного middleware для валідації даних до того, як вони потраплять до обробників маршрутів, забезпечуючи відповідність даних очікуваному формату перед подальшою обробкою.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Створення Власного Проміжного Програмного Забезпечення
У Express.js можна створювати власні функції проміжного програмного забезпечення (middleware) за допомогою методу app.use(). Такі функції приймають три параметри: req (об'єкт запиту), res (об'єкт відповіді) та next (функція для передачі керування наступному middleware у ланцюжку). Власне middleware можна застосовувати глобально до всіх маршрутів або до окремих маршрутів, вказавши шлях маршруту.
Створення власного middleware
Ось базовий приклад власної функції middleware, яка фіксує мітку часу та URL кожного вхідного запиту:
app.use((req, res, next) => {
const timestamp = new Date().toISOString();
const url = req.url;
console.log(`[${timestamp}] ${url}`);
next(); // Pass control to the next middleware.
});
У цьому прикладі власне middleware виводить у консоль мітку часу та URL кожного вхідного запиту. Виклик функції next() передає керування наступному middleware у ланцюжку.
Приклад із практики: поєднання вбудованого та власного middleware
Ось практичний приклад, де використовується вбудоване middleware Express для розбору JSON-даних, а потім створюється власне middleware для їх валідації перед подальшою обробкою:
const express = require('express');
const app = express();
// Use built-in middleware to parse JSON data.
app.use(express.json());
// Custom middleware to validate JSON data.
app.use((req, res, next) => {
const jsonData = req.body;
if (!jsonData || Object.keys(jsonData).length === 0) {
// If the JSON data is missing or empty, send an error response.
return res.status(400).json({ error: 'Invalid JSON data' });
}
// Data is valid; proceed to the next middleware or route.
next();
});
// Route that expects valid JSON data.
app.post('/api/data', (req, res) => {
const jsonData = req.body;
res.status(200).json({ message: 'Data received', data: jsonData });
});
app.listen(3000, () => {
console.log('Server is running on port 3000.');
});
У цьому прикладі:
- Використовується вбудоване middleware
express.json()для розбору вхідних JSON-даних; - Створюється власне middleware, яке перевіряє, чи розібрані JSON-дані відсутні або порожні. Якщо так, надсилається відповідь з помилкою 400 Bad Request. Якщо дані валідні, викликається
next()для переходу до маршруту; - Маршрут
/api/dataочікує валідні JSON-дані. Якщо власне middleware валідує дані, обробник маршруту їх отримує та надсилає відповідь про успішне отримання.
-
Рядок 1: імпортує фреймворк Express.js;
-
Рядок 2: створює екземпляр додатку Express шляхом виклику
express(). Отриманий об'єктappвикористовується для визначення маршрутів, проміжного програмного забезпечення (middleware) та обробки HTTP-запитів; -
Рядок 5: вмикає вбудоване проміжне програмне забезпечення
express.json(). Це middleware автоматично розбирає вхідні тіла запитів у форматі JSON і робить дані доступними черезreq.body; -
Рядки 8-18: визначають власне проміжне програмне забезпечення для валідації вхідних JSON-даних;
-
перевірка наявності даних у
req.body; -
повернення відповіді
400 Bad Request, якщо тіло запиту відсутнє або порожнє;- виклик
next(), якщо JSON-дані валідні, і перехід до наступного middleware або обробника маршруту;
- виклик
-
Рядки 21-24: визначають маршрут
POSTза адресою/api/data;- отримання надісланих JSON-даних із
req.body;
- отримання надісланих JSON-даних із
-
повернення відповіді
200 OK, що містить підтвердження та отримані дані; -
Рядки 26-28: запуск додатку Express і початок прослуховування запитів на порту
3000.
Цей приклад демонструє використання як вбудованого, так і власного middleware для валідації даних до того, як вони потраплять до обробників маршрутів, забезпечуючи відповідність даних очікуваному формату перед подальшою обробкою.
Дякуємо за ваш відгук!