Step 37: Middleware
Let’s revisit the global error handler:
// Global error handler!
app.use((err, req, res, next) => {
  if (err) {
    const code = err.status || 500;
    res.status(code).json({
      status: code,
      message: err.message || `Internal Server Error!`,
    });
  }
  next();
});
What we have created here is a “middleware.”
According to Express documentation:
Middleware functions are functions that have access to the request object (
req), the response object (res), and the next middleware function in the application's request-response cycle. The next middleware function is commonly denoted by a variable namednext.Middleware functions can perform the following tasks:
- Execute any code.
- Make changes to the request and the response objects.
- End the request-response cycle.
- Call the next middleware function in the stack.
There is plenty of middleware made for Express applications. We will add two popular ones to our app!
Aside: I recommend skimming over Using middleware and Writing middleware for use in Express apps on the Express documentation site.