Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Nest.js: middleware, nestmiddleware, request, response, next, middlewareconsumer

Объясните концепцию 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 — мощный инструмент для предобработки запросов. Применяйте его для задач, которые должны выполняться до вызова обработчика маршрута.

  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    6

Навыки

  • Nest.js

    Nest.js

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

#middleware

#nestmiddleware

#request

#response

#next

#middlewareconsumer

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

  • Аватар

    Node.js Guru

    Demetra

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.