Промежуточное программное обеспечение в Express.js может быть загадочным для новичков, но как только вы поймете, что это такое и как оно работает, вы удивитесь, насколько оно может упростить вашу жизнь при программировании. Функции промежуточного программного обеспечения имеют решающее значение для обработки запросов и ответов, выполняя различные операции между ними. Давайте проанализируем эту тему от базовых до продвинутых вариантов использования.

Оглавление

  1. Что такое промежуточное программное обеспечение?
  2. Встроенное промежуточное ПО
  3. Создание собственного промежуточного программного обеспечения
  4. Промежуточное ПО для обработки маршрутов
  5. Стороннее промежуточное ПО
  6. Промежуточное программное обеспечение для обработки ошибок

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 хлопков), которая поможет этой статье стать популярной

👉Следуйте за мной на Среднем

Дополнительную информацию можно найти в моем Среднем профиле