In this lesson, we'll look at how to handle errors in syncronous and asyncronous request handler functions.
We'll also look at custom error middleware that allows for better control over how we return errors to our client based on whether we are in a production or development environment.