NestJS, популярный фреймворк Node.js, предлагает надежную экосистему функций, которые упрощают создание масштабируемых и удобных в сопровождении приложений. Одним из важнейших компонентов NestJS является промежуточное ПО, которое играет ключевую роль в обработке запросов. В этой статье мы углубимся в мир промежуточного программного обеспечения, демистифицируем его концепцию и изучим, как эффективно использовать его в ваших приложениях NestJS. Независимо от того, являетесь ли вы новичком или опытным разработчиком, понимание промежуточного программного обеспечения, несомненно, повысит ваши навыки работы с NestJS!
Что такое промежуточное ПО?
В контексте NestJS промежуточное ПО — это функция, которая запускается во время жизненного цикла запроса/ответа, перехватывая входящие запросы до того, как они достигнут обработчика маршрута. Думайте об этом как о станции промежуточного программного обеспечения, через которую должны проходить все входящие запросы, что позволяет вам изменять, проверять или регистрировать данные по пути.
Функции промежуточного программного обеспечения
Функции промежуточного программного обеспечения в NestJS следуют определенной сигнатуре, принимая три параметра: объект запроса req
, объект ответа res
и функцию next
. Функция next
имеет решающее значение, поскольку она позволяет запросу продолжить свое путешествие к следующему промежуточному программному обеспечению или обработчику маршрута.
Давайте напишем простое промежуточное программное обеспечение, которое регистрирует метод входящего запроса и URL-адрес:
// LoggingMiddleware.ts import { Request, Response, NextFunction } from 'express'; export function loggingMiddleware(req: Request, res: Response, next: NextFunction) { console.log(`Incoming request: ${req.method} ${req.url}`); next(); }
Использование промежуточного программного обеспечения в NestJS
Теперь, когда у нас есть промежуточное ПО для ведения журналов, давайте посмотрим, как мы можем применить его к определенному маршруту или ко всему приложению. Чтобы использовать промежуточное ПО глобально в вашем приложении NestJS, вам необходимо зарегистрировать его в своем модуле приложения:
// AppModule.ts import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { loggingMiddleware } from './LoggingMiddleware'; @Module({ imports: [], controllers: [AppController], providers: [AppService], }) export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(loggingMiddleware).forRoutes('*'); } }
В этом примере мы используем метод forRoutes(‘*’)
для применения loggingMiddleware
ко всем входящим запросам. Однако вы можете применить промежуточное ПО к определенным маршрутам или контроллерам, передав их имена в качестве аргументов.
Практичное и забавное ПО промежуточного слоя
Давайте отвлечемся от теоретических аспектов и добавим немного юмора в наше промежуточное ПО. Как разработчики, мы иногда забываем посмеяться над кодом, который пишем. Итак, давайте создадим промежуточное ПО, которое приветствует наших пользователей забавным сообщением:
// FunnyGreetingMiddleware.ts import { Request, Response, NextFunction } from 'express'; const funnyGreetings = [ "Hello there! Did you bring cookies?", "Hey, is this thing on? Just kidding! Welcome!", "Knock, knock. Who's there? It's middleware!", "Are you a developer or a magician? You just summoned middleware!", ]; export function funnyGreetingMiddleware(req: Request, res: Response, next: NextFunction) { const randomIndex = Math.floor(Math.random() * funnyGreetings.length); const greeting = funnyGreetings[randomIndex]; console.log(greeting); next(); }
Не забудьте зарегистрировать это новое промежуточное ПО в модуле приложения, как мы это делали раньше.
Заключение
Поздравляем! Теперь вы освоили искусство использования промежуточного программного обеспечения в NestJS. Вы узнали, что такое ПО промежуточного слоя, как создавать собственные функции ПО промежуточного слоя и даже как добавить юмора в свои приложения. С промежуточным программным обеспечением вы можете эффективно управлять своими запросами, добавлять аутентификацию, ведение журнала и многое другое.
Промежуточное ПО — это лишь одна из многих мощных функций, которые NestJS предоставляет, чтобы помочь вам создавать надежные и масштабируемые приложения. Итак, идите вперед и исследуйте огромные возможности, которые предлагает NestJS. Удачного кодирования, и помните, что всегда есть место для творчества даже в самых технических частях вашего кода!
Дополнительные материалы на PlainEnglish.io.
Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .