Промежуточное программное обеспечение в Express.js может быть загадочным для новичков, но как только вы поймете, что это такое и как оно работает, вы удивитесь, насколько оно может упростить вашу жизнь при программировании. Функции промежуточного программного обеспечения имеют решающее значение для обработки запросов и ответов, выполняя различные операции между ними. Давайте проанализируем эту тему от базовых до продвинутых вариантов использования.
Оглавление
- Что такое промежуточное программное обеспечение?
- Встроенное промежуточное ПО
- Создание собственного промежуточного программного обеспечения
- Промежуточное ПО для обработки маршрутов
- Стороннее промежуточное ПО
- Промежуточное программное обеспечение для обработки ошибок
1. Что такое промежуточное программное обеспечение?
В Express.js функции промежуточного программного обеспечения — это функции, которые имеют доступ к объекту запроса (req
), объекту ответа (res
) и следующей функции в цикле запроса-ответа приложения.
// Basic structure of a middleware function function myMiddleware(req, res, next) { // Do something next(); // Call the next middleware }
Примечание. Функция next
имеет решающее значение; он передает управление последующему промежуточному программному обеспечению. Без него запрос зависнет.
2. Встроенное промежуточное ПО
Express поставляется с некоторыми встроенными функциями промежуточного программного обеспечения, такими как express.json()
, express.urlencoded()
и express.static()
.
// Built-in middleware for parsing JSON requests app.use(express.json()); // Serve static files app.use(express.static('public'));
Примечание: express.json()
позволяет анализировать входящие полезные данные JSON, а express.static()
обслуживает статические файлы.
3. Создание собственного промежуточного программного обеспечения
Давайте создадим функцию промежуточного программного обеспечения, которая регистрирует каждый входящий запрос.
// Logging Middleware function logger(req, res, next) { console.log(`${req.method} request for ${req.url}`); next(); } // Using custom middleware app.use(logger);
Примечание. Это специальное промежуточное программное обеспечение регистрирует метод и URL-адрес каждого входящего запроса.
4. Промежуточное ПО для обработки маршрутов
Вы можете определить промежуточное программное обеспечение специально для определенных маршрутов.
// Middleware for a specific route app.get('/dashboard', authenticate, (req, res) => { res.send('Welcome to the dashboard.'); }); function authenticate(req, res, next) { if (req.query.admin === 'true') { next(); // User is authenticated } else { res.send('Authentication required'); } }
Примечание. Промежуточное программное обеспечение authenticate
используется только для маршрута /dashboard
.
5. Стороннее промежуточное ПО
Вы также можете использовать стороннее промежуточное программное обеспечение, такое как morgan
для ведения журналов или helmet
для защиты ваших приложений Express.
const morgan = require('morgan'); // Use Morgan for logging app.use(morgan('dev'));
Примечание. Промежуточное программное обеспечение morgan
регистрирует входящие запросы, что упрощает отладку и мониторинг вашего приложения.
6. Промежуточное программное обеспечение для обработки ошибок
Промежуточное программное обеспечение для обработки ошибок определяется с четырьмя аргументами вместо трех и находится в нижней части стека промежуточного программного обеспечения.
// Error-handling middleware function errorHandler(err, req, res, next) { res.status(500).send(err); } // Using the error-handling middleware app.use(errorHandler);
Примечание. Это промежуточное программное обеспечение для обработки ошибок фиксирует ошибки и отправляет код состояния 500.
Вот и все! Промежуточное программное обеспечение в Express.js обладает значительными возможностями влияния на обработку запросов и ответов. Поэтому убедитесь, что вы используете его полный потенциал.
«Промежуточное программное обеспечение готовит почву; ваше приложение работает на нем. Выбирайте промежуточное ПО с умом». — Аноним
Если вам понравилась статья и вы хотите выразить свою поддержку, обязательно:
👏 Поаплодируйте за историю (50 хлопков), которая поможет этой статье стать популярной
👉Следуйте за мной на Среднем
Дополнительную информацию можно найти в моем Среднем профиле