Bird
Raised Fist0
Node.jsframework~5 mins

Centralized error handling in Node.js - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is centralized error handling in Node.js?
Centralized error handling means managing all errors in one place in your application, making it easier to track, log, and respond to errors consistently.
Click to reveal answer
beginner
Why use a centralized error handler instead of handling errors in every function?
It reduces repeated code, helps keep your app clean, and ensures all errors are handled uniformly, improving maintainability and debugging.
Click to reveal answer
intermediate
How do you create a centralized error handler middleware in Express.js?
You create a function with four parameters: (err, req, res, next). Express recognizes it as an error handler and calls it when errors occur.
Click to reveal answer
intermediate
What is the role of the 'next' function in Express error handling middleware?
The 'next' function passes control to the next middleware. In error handlers, calling next(err) passes the error to the next error handler if any.
Click to reveal answer
beginner
How can centralized error handling improve user experience?
It allows you to send clear, consistent error messages or friendly pages, so users understand what went wrong without confusing technical details.
Click to reveal answer
In Express.js, what signature does an error-handling middleware function have?
A(req, res)
B(req, res, next)
C(err, req, res, next)
D(err, req, res)
What happens if you don't use centralized error handling in a Node.js app?
AThe app will never crash
BErrors might be missed or handled inconsistently
CAll errors are automatically fixed
DThe app runs faster
Which method is commonly used to pass an error to the centralized handler in Express?
Anext(err)
Bres.send(err)
Cthrow err
Dconsole.log(err)
What is a benefit of logging errors in a centralized error handler?
AHelps track and fix bugs faster
BSlows down the app
CPrevents errors from happening
DMakes the app use more memory
Which of these is NOT a good practice in centralized error handling?
ALogging errors on the server
BCatching all errors in one place
CSending user-friendly error messages
DSending detailed stack traces to users
Explain how centralized error handling works in a Node.js Express app and why it is useful.
Think about how Express knows which function handles errors and how errors flow through middleware.
You got /4 concepts.
    Describe how centralized error handling can improve the experience for users and developers.
    Consider both sides: what users see and what developers need.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main benefit of centralized error handling in a Node.js Express app?
      easy
      A. It keeps all error handling code in one place for easier maintenance.
      B. It automatically fixes all errors without developer input.
      C. It prevents any errors from occurring in the app.
      D. It makes the app run faster by skipping error checks.

      Solution

      1. Step 1: Understand centralized error handling purpose

        Centralized error handling means managing errors in one place instead of scattering code everywhere.
      2. Step 2: Identify benefits of centralized error handling

        This approach makes the app easier to maintain and debug because all error logic is together.
      3. Final Answer:

        It keeps all error handling code in one place for easier maintenance. -> Option A
      4. Quick Check:

        Centralized error handling = easier maintenance [OK]
      Hint: Centralized means one place for all errors [OK]
      Common Mistakes:
      • Thinking it prevents errors automatically
      • Believing it makes the app faster by skipping errors
      • Confusing centralized handling with error fixing
      2. Which of the following is the correct signature for an Express centralized error handling middleware?
      easy
      A. function errorHandler(req, res, next) { ... }
      B. function errorHandler(err, req, res, next) { ... }
      C. function errorHandler(err, req, res) { ... }
      D. function errorHandler(req, res) { ... }

      Solution

      1. Step 1: Recall Express error middleware signature

        Express error middleware must have four parameters: error, request, response, next.
      2. Step 2: Match the correct function signature

        Only the function with (err, req, res, next) matches the required signature.
      3. Final Answer:

        function errorHandler(err, req, res, next) { ... } -> Option B
      4. Quick Check:

        Error middleware = 4 params (err, req, res, next) [OK]
      Hint: Error middleware always has 4 parameters [OK]
      Common Mistakes:
      • Using 3 parameters instead of 4
      • Omitting the error parameter
      • Confusing normal middleware with error middleware
      3. Given this Express app code snippet, what will be the response when a GET request to '/' throws an error?
      const express = require('express');
      const app = express();
      
      app.get('/', (req, res) => {
        throw new Error('Oops!');
      });
      
      app.use((err, req, res, next) => {
        res.status(500).send('Error caught: ' + err.message);
      });
      
      app.listen(3000);
      medium
      A. The server crashes and no response is sent.
      B. The client receives a default Express error page with status 404.
      C. The client receives 'Error caught: Oops!' with status 500.
      D. The client receives 'Oops!' with status 200.

      Solution

      1. Step 1: Identify error throwing in route

        The GET '/' route throws an error with message 'Oops!'.
      2. Step 2: Check error middleware handling

        The error middleware catches the error and sends a 500 status with message 'Error caught: Oops!'.
      3. Final Answer:

        The client receives 'Error caught: Oops!' with status 500. -> Option C
      4. Quick Check:

        Thrown error caught by middleware = 500 response [OK]
      Hint: Thrown errors go to error middleware response [OK]
      Common Mistakes:
      • Assuming server crashes on thrown error
      • Expecting status 404 instead of 500
      • Thinking error message is sent without prefix
      4. What is wrong with this Express error handling middleware?
      app.use((err, req, res) => {
        res.status(500).send('Error: ' + err.message);
      });
      medium
      A. It is missing the 'next' parameter, so Express won't recognize it as error middleware.
      B. It should not use res.status(500) inside error middleware.
      C. The error parameter should be named 'error' instead of 'err'.
      D. It should be placed before route handlers, not after.

      Solution

      1. Step 1: Check middleware parameters

        Express error middleware requires four parameters: err, req, res, next.
      2. Step 2: Identify missing parameter

        This middleware has only three parameters, missing 'next', so Express treats it as normal middleware, not error handler.
      3. Final Answer:

        It is missing the 'next' parameter, so Express won't recognize it as error middleware. -> Option A
      4. Quick Check:

        Error middleware must have 4 params (err, req, res, next) [OK]
      Hint: Error middleware always needs 4 parameters [OK]
      Common Mistakes:
      • Thinking parameter names must be specific
      • Believing status code usage is wrong
      • Placing middleware order incorrectly
      5. You want to create a centralized error handler that logs errors and sends JSON responses with status and message. Which code snippet correctly implements this in Express?
      hard
      A. app.use((err, req, res, next) => { res.sendStatus(200); });
      B. app.use((req, res, next) => { console.error('Error occurred'); res.status(500).json({ error: 'Unknown error' }); });
      C. app.use((err, req, res) => { console.log(err); res.send('Error happened'); });
      D. app.use((err, req, res, next) => { console.error(err.stack); res.status(err.status || 500).json({ error: err.message }); });

      Solution

      1. Step 1: Verify error middleware signature and logging

        The correct snippet uses four parameters (err, req, res, next) and logs the error stack with console.error(err.stack).
      2. Step 2: Check response format and status code

        It sends a JSON response with the error message and sets the status to err.status || 500.
      3. Step 3: Evaluate other options

        The other options lack the proper signature, correct logging, status handling, or JSON response.
      4. Final Answer:

        app.use((err, req, res, next) => { console.error(err.stack); res.status(err.status || 500).json({ error: err.message }); }); -> Option D
      5. Quick Check:

        Proper error middleware logs and sends JSON with status [OK]
      Hint: Error middleware: 4 params, log error, send JSON with status [OK]
      Common Mistakes:
      • Missing 'next' parameter in middleware
      • Sending status 200 on error
      • Not sending JSON response format