Bird
Raised Fist0
Expressframework~5 mins

Application-level middleware in Express - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is application-level middleware in Express?
Application-level middleware is a function that runs during the request-response cycle for all or specific routes in an Express app. It can modify requests, responses, or end the request.
Click to reveal answer
beginner
How do you add application-level middleware in Express?
Use app.use() to add middleware that applies to all routes, or add middleware as additional arguments to specific route handlers like app.get('/path', middleware, handler).
Click to reveal answer
beginner
What are the three arguments of an Express middleware function?
The middleware function receives req (request), res (response), and next (a function to pass control to the next middleware).
Click to reveal answer
intermediate
What happens if you don’t call next() in middleware?
The request will hang because Express won’t move to the next middleware or route handler. You must call next() unless you send a response.
Click to reveal answer
intermediate
Can application-level middleware modify the request or response objects?
Yes, middleware can add properties or change req and res objects to share data or customize behavior for later middleware or routes.
Click to reveal answer
Which method adds application-level middleware to all routes in Express?
Aapp.listen()
Bapp.use()
Capp.route()
Dapp.get()
What is the purpose of the next argument in middleware?
ATo send a response to the client
BTo log the request
CTo pass control to the next middleware or route handler
DTo end the server
If middleware does not call next() or send a response, what happens?
AThe request hangs and never finishes
BThe server crashes
CThe request completes successfully
DThe middleware runs twice
How can you apply middleware only to a specific route?
AUse <code>app.listen()</code> with middleware
BUse <code>app.use()</code> with the route path
CMiddleware cannot be route-specific
DAdd middleware as an argument before the route handler, e.g., <code>app.get('/path', middleware, handler)</code>
Which of these is NOT a typical use of application-level middleware?
AHandling database connections
BParsing JSON bodies
CLogging requests
DServing static files
Explain how application-level middleware works in Express and how you add it to your app.
Think about how middleware fits between request and response.
You got /5 concepts.
    Describe what happens if you forget to call next() in your middleware function.
    Imagine the request is stuck waiting for something.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of application-level middleware in Express?
      easy
      A. To run code for every request or specific routes before the final handler
      B. To directly send HTML files to the client
      C. To connect Express with a database
      D. To create new HTTP servers

      Solution

      1. Step 1: Understand middleware role

        Application-level middleware runs before route handlers to process requests.
      2. Step 2: Identify middleware usage

        It can modify requests, responses, or decide to stop the request cycle early.
      3. Final Answer:

        To run code for every request or specific routes before the final handler -> Option A
      4. Quick Check:

        Middleware runs before handlers [OK]
      Hint: Middleware runs before routes to process requests [OK]
      Common Mistakes:
      • Confusing middleware with route handlers
      • Thinking middleware creates servers
      • Assuming middleware connects databases directly
      2. Which of the following is the correct syntax to add application-level middleware in Express?
      easy
      A. app.addMiddleware(function(req, res) { next(); });
      B. app.middleware((req, res) => { console.log('Middleware'); });
      C. app.use((req, res, next) => { console.log('Middleware'); next(); });
      D. app.routeMiddleware((req, res, next) => { next(); });

      Solution

      1. Step 1: Recall Express middleware syntax

        Express uses app.use() to add middleware functions.
      2. Step 2: Check function parameters

        Middleware functions receive req, res, next and must call next() to continue.
      3. Final Answer:

        app.use((req, res, next) => { console.log('Middleware'); next(); }); -> Option C
      4. Quick Check:

        app.use with (req, res, next) and next() [OK]
      Hint: Middleware uses app.use with three parameters and calls next() [OK]
      Common Mistakes:
      • Using non-existent methods like app.middleware
      • Omitting the next parameter or call
      • Confusing middleware with route handlers
      3. Consider this Express code snippet:
      app.use((req, res, next) => { console.log('First'); next(); });
      app.use((req, res, next) => { console.log('Second'); next(); });
      app.get('/', (req, res) => { res.send('Hello'); });

      What will be printed in the console when a GET request is made to '/'?
      medium
      A. Second\nFirst
      B. First\nSecond
      C. Hello
      D. No output

      Solution

      1. Step 1: Understand middleware execution order

        Middleware runs in the order they are added with app.use().
      2. Step 2: Trace console logs

        First middleware logs 'First' then calls next(), second logs 'Second' then calls next(), then route sends response.
      3. Final Answer:

        First\nSecond -> Option B
      4. Quick Check:

        Middleware executes in order added [OK]
      Hint: Middleware logs appear in order of app.use calls [OK]
      Common Mistakes:
      • Assuming route handler logs to console
      • Thinking middleware runs after route
      • Mixing order of middleware execution
      4. What is the problem with this middleware code?
      app.use((req, res, next) => { console.log('Middleware running'); });
      app.get('/', (req, res) => { res.send('Done'); });
      medium
      A. Middleware should be added after routes
      B. Middleware syntax is incorrect
      C. Route handler is missing parameters
      D. Missing call to next(), request will hang

      Solution

      1. Step 1: Check middleware function

        The middleware logs a message but does not call next().
      2. Step 2: Understand effect of missing next()

        Without calling next(), the request does not proceed to the route handler, causing the request to hang.
      3. Final Answer:

        Missing call to next(), request will hang -> Option D
      4. Quick Check:

        Middleware must call next() to continue [OK]
      Hint: Always call next() in middleware to avoid hanging requests [OK]
      Common Mistakes:
      • Forgetting to call next() in middleware
      • Thinking middleware runs after routes
      • Assuming middleware syntax is wrong without checking next()
      5. You want to create middleware that only runs for routes starting with '/admin'. Which is the correct way to apply this middleware?
      hard
      A. app.use('/admin', (req, res, next) => { console.log('Admin middleware'); next(); });
      B. app.use((req, res, next) => { if(req.url.startsWith('admin')) { console.log('Admin middleware'); } next(); });
      C. app.get('/admin', (req, res, next) => { console.log('Admin middleware'); next(); });
      D. app.use('*admin', (req, res, next) => { console.log('Admin middleware'); next(); });

      Solution

      1. Step 1: Understand path filtering in middleware

        Express allows specifying a path prefix in app.use(path, middleware) to run middleware only on matching routes.
      2. Step 2: Evaluate options

        app.use('/admin', (req, res, next) => { console.log('Admin middleware'); next(); }); correctly uses app.use('/admin', ...) for prefix matching. app.use((req, res, next) => { if(req.url.startsWith('admin')) { console.log('Admin middleware'); } next(); }); has incorrect condition (startsWith('admin') misses leading /, never matches). app.get('/admin', (req, res, next) => { console.log('Admin middleware'); next(); }); is a route handler, not middleware. app.use('*admin', (req, res, next) => { console.log('Admin middleware'); next(); }); *admin matches paths containing admin at the end, not starting with /admin.
      3. Final Answer:

        app.use('/admin', (req, res, next) => { console.log('Admin middleware'); next(); }); -> Option A
      4. Quick Check:

        Use app.use with path prefix for selective middleware [OK]
      Hint: Use app.use('/path', middleware) to target specific routes [OK]
      Common Mistakes:
      • Using route handlers instead of middleware
      • Incorrect conditional checks in global middleware
      • Wrong path patterns like wildcards in wrong position
      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