Bird
Raised Fist0
Node.jsframework~5 mins

Error-handling middleware in Node.js - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is error-handling middleware in Node.js Express?
It is a special type of middleware designed to catch and handle errors that occur during request processing. It has four parameters: (err, req, res, next).
Click to reveal answer
beginner
How do you define an error-handling middleware function in Express?
By creating a function with four arguments: (err, req, res, next). Express recognizes it as error-handling middleware because of the first 'err' parameter.
Click to reveal answer
intermediate
Why should error-handling middleware be placed after all other middleware and routes?
Because it catches errors from previous middleware or routes. If placed earlier, it won't catch errors from later code.
Click to reveal answer
intermediate
What happens if you call next() with an error inside a middleware?
Express skips normal middleware and routes, then calls the next error-handling middleware to handle the error.
Click to reveal answer
beginner
How can you send a user-friendly error message from error-handling middleware?
Use res.status() to set HTTP status code and res.json() or res.send() to send a clear message explaining the error.
Click to reveal answer
Which of these is the correct signature for error-handling middleware in Express?
A(req, res)
B(err, req, res, next)
C(req, res, next)
D(err, req, res)
Where should error-handling middleware be placed in your Express app?
AOnly inside route handlers
BBefore all routes and middleware
CAnywhere in the code
DAfter all routes and middleware
What does calling next(err) inside a middleware do?
APasses control to the next error-handling middleware
BSends a response immediately
CStops the request processing
DPasses control to the next normal middleware
How can you send a 404 error using error-handling middleware?
Anext(404)
Bres.send(404)
Cres.status(404).send('Not Found')
Dthrow 404
What parameter identifies a middleware as error-handling middleware?
AThe presence of 'err' as the first parameter
BThe use of res.send()
CThe use of next()
DThe absence of next parameter
Explain how error-handling middleware works in Express and why its signature is important.
Think about how Express knows which middleware handles errors.
You got /4 concepts.
    Describe the steps to create and use error-handling middleware in a Node.js Express app.
    Focus on function signature, placement, and usage.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the correct number of parameters for an error-handling middleware function in Node.js Express?
      easy
      A. One parameter: err
      B. Three parameters: req, res, next
      C. Two parameters: req, res
      D. Four parameters: err, req, res, next

      Solution

      1. Step 1: Recall the error middleware signature

        Error-handling middleware in Express always has four parameters: err, req, res, and next.
      2. Step 2: Understand the role of each parameter

        The first parameter is the error object, followed by the request, response, and next function to pass control.
      3. Final Answer:

        Four parameters: err, req, res, next -> Option D
      4. Quick Check:

        Error middleware = 4 parameters [OK]
      Hint: Error middleware always has 4 parameters: err, req, res, next [OK]
      Common Mistakes:
      • Using 3 parameters like normal middleware
      • Forgetting the err parameter
      • Placing error middleware before routes
      2. Which of the following is the correct syntax to define an error-handling middleware in Express?
      easy
      A. app.use((err, req, res, next) => { /* handle error */ })
      B. app.use((req, res, next, err) => { /* handle error */ })
      C. app.use((err, req, next, res) => { /* handle error */ })
      D. app.use((req, err, res, next) => { /* handle error */ })

      Solution

      1. Step 1: Check parameter order in error middleware

        The correct order is err, req, res, next for error-handling middleware.
      2. Step 2: Verify the syntax matches Express pattern

        app.use((err, req, res, next) => { /* handle error */ }) matches the correct order and syntax for error middleware.
      3. Final Answer:

        app.use((err, req, res, next) => { /* handle error */ }) -> Option A
      4. Quick Check:

        Correct parameter order = err, req, res, next [OK]
      Hint: Error middleware params start with err, then req, res, next [OK]
      Common Mistakes:
      • Mixing parameter order
      • Placing err parameter last or in the middle
      • Using normal middleware syntax for error middleware
      3. Consider this Express app code snippet:
      app.get('/test', (req, res) => {
      throw new Error('Fail');
      });

      app.use((err, req, res, next) => {
      res.status(500).send('Error caught');
      });

      What will the client receive when requesting /test?
      medium
      A. A 404 Not Found error
      B. A 500 status with 'Error caught' message
      C. A 200 status with no response body
      D. The server crashes with an uncaught exception

      Solution

      1. Step 1: Understand error thrown in route handler

        The route throws an error which Express catches and passes to error middleware.
      2. Step 2: Error middleware sends 500 status and message

        The error middleware sets status 500 and sends 'Error caught' to the client.
      3. Final Answer:

        A 500 status with 'Error caught' message -> Option B
      4. Quick Check:

        Error thrown -> error middleware response [OK]
      Hint: Thrown errors go to error middleware response [OK]
      Common Mistakes:
      • Expecting 200 OK despite error
      • Thinking server crashes without middleware
      • Confusing 404 with error middleware response
      4. What is wrong with this error-handling middleware code?
      app.use((err, req, res) => {
      res.status(500).send('Error!');
      });
      medium
      A. It should have only two parameters
      B. It should be placed before routes
      C. It is missing the next parameter
      D. It should not use res.status

      Solution

      1. Step 1: Check error middleware parameters

        Error middleware must have four parameters: err, req, res, next.
      2. Step 2: Identify missing parameter

        The code is missing the next parameter, which is required even if unused.
      3. Final Answer:

        It is missing the next parameter -> Option C
      4. Quick Check:

        Error middleware needs 4 params including next [OK]
      Hint: Error middleware always needs 4 parameters, including next [OK]
      Common Mistakes:
      • Omitting next parameter
      • Placing error middleware before routes
      • Using wrong parameter order
      5. You want to log errors and then send a response in your Express app. Which is the best way to write the error-handling middleware?
      app.use((err, req, res, next) => {
      console.error(err.stack);
      res.status(500).send('Something broke!');
      });

      What is a potential problem with this code if you add more error middleware after it?
      hard
      A. It does not call next(), so later error middleware won't run
      B. It calls next() without an error, causing infinite loop
      C. It sends response twice causing an error
      D. It should not log errors in middleware

      Solution

      1. Step 1: Analyze middleware flow after sending response

        Once res.send is called, response is sent and middleware usually ends.
      2. Step 2: Understand next() usage in error middleware

        If next() is not called, any following error middleware won't execute.
      3. Step 3: Identify problem if more error middleware exists

        Without calling next(err), later error middleware is skipped, possibly missing logging or handling.
      4. Final Answer:

        It does not call next(), so later error middleware won't run -> Option A
      5. Quick Check:

        Missing next() call skips later error middleware [OK]
      Hint: Call next(err) to continue error middleware chain [OK]
      Common Mistakes:
      • Not calling next() after sending response
      • Calling next() without error causing loops
      • Logging errors outside 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