Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад

Объясните концепцию Middleware. Как реализовать Middleware?

Вопрос проверяет знание Middleware в NestJS, его роли в обработке запросов и способа реализации.

Короткий ответ

Middleware в NestJS — это функция, которая выполняется перед обработчиком маршрута. Оно имеет доступ к объектам request, response и функции next() для перехода к следующему этапу в цикле обработки запросов. Middleware используется для таких задач, как логирование, аутентификация и изменение данных запроса или ответа.

Длинный ответ

Middleware в NestJS позволяет перехватывать запросы до их передачи обработчику маршрута. Оно может быть:

- Применено к определенным маршрутам.

- Зарегистрировано глобально для всего приложения.

 

Для создания Middleware:

1. Создайте класс, реализующий интерфейс NestMiddleware.

2. Реализуйте метод use(), принимающий параметры req, res и next().

3. Зарегистрируйте Middleware через MiddlewareConsumer в модуле.

 

Пример:

import { Injectable, NestMiddleware } from '@nestjs/common';
import { Request, Response, NextFunction } from 'express';

@Injectable()
export class LoggerMiddleware implements NestMiddleware {
  use(req: Request, res: Response, next: NextFunction) {
    console.log(`Request...`);
    next();
  }
}

 

Регистрация Middleware:

import { Module, MiddlewareConsumer, RequestMethod } from '@nestjs/common';
import { LoggerMiddleware } from './logger.middleware';

@Module({})
export class AppModule {
  configure(consumer: MiddlewareConsumer) {
    consumer
      .apply(LoggerMiddleware)
      .forRoutes({ path: 'cats', method: RequestMethod.GET });
  }
}


Middleware — мощный инструмент для предобработки запросов. Применяйте его для задач, которые должны выполняться до вызова обработчика маршрута.

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • Nest.js

Ключевые слова

#middleware

#nestmiddleware

#request

#response

#next

#middlewareconsumer

Подпишись на Node.js Developer в телеграм