Bird
Raised Fist0
NestJSframework~5 mins

Applying middleware to routes in NestJS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is middleware in NestJS?
Middleware in NestJS is a function that runs before the route handler. It can modify the request or response, or end the request-response cycle.
Click to reveal answer
beginner
How do you apply middleware to a specific route in NestJS?
You apply middleware by implementing the configure() method in a module and using consumer.apply(MiddlewareClass).forRoutes('route').
Click to reveal answer
beginner
What is the purpose of the next() function in NestJS middleware?
The next() function passes control to the next middleware or route handler. Without calling next(), the request will not continue.
Click to reveal answer
intermediate
Can middleware be applied globally in NestJS? How?
Yes, middleware can be applied globally by using app.use() in the main bootstrap file before starting the app.
Click to reveal answer
intermediate
What types of routes can middleware be applied to in NestJS?
Middleware can be applied to string paths, controller classes, or route objects specifying method and path.
Click to reveal answer
In NestJS, where do you define middleware for specific routes?
AInside the module's configure() method using consumer.apply()
BInside the controller's constructor
CIn the main.ts file only
DInside the service class
What happens if you forget to call next() in a NestJS middleware?
AThe request will automatically continue
BThe request will hang and not reach the route handler
CAn error is thrown immediately
DThe middleware is skipped
Which method applies middleware globally in NestJS?
Acontroller.use()
Bconsumer.apply()
Capp.use()
Dmodule.use()
Middleware in NestJS can be applied to which of the following?
AString paths, controller classes, route objects
BOnly string paths
COnly controller classes
DOnly HTTP methods
What is the main role of middleware in NestJS?
ATo replace controllers
BTo define routes
CTo handle database connections
DTo process requests before they reach route handlers
Explain how to apply middleware to a specific route in NestJS and why you might want to do this.
Think about controlling which routes get extra processing.
You got /4 concepts.
    Describe the difference between applying middleware globally and applying it to specific routes in NestJS.
    Consider the scope of middleware application.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of applying middleware to routes in a NestJS application?
      easy
      A. To run code before the route handler processes the request
      B. To directly send responses without reaching the route handler
      C. To replace the route handler with a new function
      D. To automatically generate API documentation

      Solution

      1. Step 1: Understand middleware role

        Middleware runs before the route handler to process or modify requests.
      2. Step 2: Identify middleware effect on routes

        It does not replace handlers or generate docs but can log or check requests first.
      3. Final Answer:

        To run code before the route handler processes the request -> Option A
      4. Quick Check:

        Middleware runs before route handlers [OK]
      Hint: Middleware always runs before route handlers [OK]
      Common Mistakes:
      • Thinking middleware replaces route handlers
      • Confusing middleware with response sending
      • Assuming middleware auto-generates docs
      2. Which of the following is the correct syntax to apply a middleware named LoggerMiddleware to all routes in a NestJS module?
      easy
      A. consumer.use(LoggerMiddleware).forRoutes('/');
      B. consumer.apply(LoggerMiddleware).forRoutes('/');
      C. consumer.apply(LoggerMiddleware).forRoutes('*');
      D. consumer.apply(LoggerMiddleware).toRoutes('*');

      Solution

      1. Step 1: Recall NestJS middleware syntax

        The correct method to apply middleware is consumer.apply(...).forRoutes(...).
      2. Step 2: Identify correct route pattern for all routes

        Using '/' applies middleware to all routes; '*' is invalid.
      3. Final Answer:

        consumer.apply(LoggerMiddleware).forRoutes('/'); -> Option B
      4. Quick Check:

        Use apply + forRoutes('/') for all routes [OK]
      Hint: Use apply() with forRoutes('/') to cover all routes [OK]
      Common Mistakes:
      • Using use() instead of apply()
      • Using toRoutes() which is invalid
      • Using '*' instead of '/' for all routes
      3. Given this middleware application code in a NestJS module:
      consumer.apply(AuthMiddleware).forRoutes('users');

      Which routes will have the AuthMiddleware applied?
      medium
      A. All routes including '/users' and '/users/:id'
      B. Only routes with path exactly '/users'
      C. All routes in the application
      D. No routes, because the path is invalid

      Solution

      1. Step 1: Understand forRoutes string behavior

        Passing 'users' applies middleware to all routes starting with '/users', including parameters.
      2. Step 2: Confirm middleware coverage

        This includes '/users', '/users/123', '/users/profile', etc., not the entire app.
      3. Final Answer:

        All routes including '/users' and '/users/:id' -> Option A
      4. Quick Check:

        forRoutes('users') covers prefix routes [OK]
      Hint: forRoutes('path') applies middleware to that path and subpaths [OK]
      Common Mistakes:
      • Thinking only exact path matches get middleware
      • Assuming middleware applies globally without '*'
      • Believing invalid path disables middleware
      4. Examine this NestJS middleware setup:
      export class AppModule implements NestModule {
        configure(consumer: MiddlewareConsumer) {
          consumer.apply(AuthMiddleware).forRoutes();
        }
      }

      What is the issue with this code?
      medium
      A. Middleware class must be decorated with @Injectable
      B. Middleware is applied globally without specifying routes
      C. Missing route argument in forRoutes causes a runtime error
      D. MiddlewareConsumer is not imported correctly

      Solution

      1. Step 1: Check forRoutes usage

        The method forRoutes requires at least one argument specifying routes; empty call is invalid.
      2. Step 2: Identify error type

        Calling forRoutes() without arguments causes a runtime error because no routes are defined.
      3. Final Answer:

        Missing route argument in forRoutes causes a runtime error -> Option C
      4. Quick Check:

        forRoutes() needs routes argument [OK]
      Hint: Always provide routes to forRoutes() [OK]
      Common Mistakes:
      • Leaving forRoutes empty
      • Assuming middleware applies globally without routes
      • Ignoring missing @Injectable on middleware
      5. You want to apply LoggerMiddleware only to POST requests on the /orders route in NestJS. Which approach correctly applies middleware only to POST /orders requests?
      hard
      A. Apply middleware globally and skip non-POST requests inside middleware
      B. Use consumer.apply(LoggerMiddleware).forRoutes('orders'); and check method inside middleware
      C. Use consumer.apply(LoggerMiddleware).forRoutes('orders'); without method filtering
      D. Use consumer.apply(LoggerMiddleware).forRoutes({ path: 'orders', method: RequestMethod.POST });

      Solution

      1. Step 1: Understand method filtering in middleware

        NestJS allows specifying method with an object: { path, method } in forRoutes.
      2. Step 2: Identify correct syntax for POST-only middleware

        Using consumer.apply(...).forRoutes({ path: 'orders', method: RequestMethod.POST }) applies middleware only to POST /orders.
      3. Final Answer:

        Use consumer.apply(LoggerMiddleware).forRoutes({ path: 'orders', method: RequestMethod.POST }); -> Option D
      4. Quick Check:

        Use object with path and method in forRoutes for method filtering [OK]
      Hint: Use forRoutes({path, method}) to target HTTP methods [OK]
      Common Mistakes:
      • Applying middleware to all methods without filtering
      • Checking method inside middleware instead of in forRoutes
      • Applying middleware globally and filtering inside middleware
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard