पाठ 9 / 34
Middleware
Middleware classes से route handlers से पहले logic चलाएँ और module की configure method में चुने routes पर लगाएँ।
Middleware लिखें
Middleware एक function या class है जो route handler से पहले/बाद में चलता है।
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(`${req.method} ${req.path}`);
next();
}
}Middleware लागू करें
Module के configure() method में apply करें, intercept करने के लिए routes को specify करते हुए।
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(LoggerMiddleware)
.forRoutes('users'); // or use { path: 'users', method: RequestMethod.GET }
}
}Functional middleware
middleware (req, res, next) वाला साधारण function है।
next()call करें वरना request अटक जाती है।consumer.apply(...).forRoutes('users')इसे एक route prefix से जोड़ता है।
import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
import { Request, Response, NextFunction } from 'express';
function logger(req: Request, _res: Response, next: NextFunction) {
console.log(`${req.method} ${req.url}`);
next();
}
@Module({})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(logger).forRoutes('users');
}
}त्वरित जाँच
त्वरित जाँच: request lifecycle में सबसे पहले क्या चलता है?
- Guards
- Pipes
- Middleware
Answer
Middleware — क्रम है middleware, guards, interceptors (before), pipes, handler।