Summary
In this chapter, we learned about the types of errors that can be thrown in Node.js applications. We saw how to throw custom errors and how to capture and recover from any kind of error.
Additionally, we reviewed how to manage application and user errors in Express. We also learned how to manage a graceful shutdown when the service crashed.
Finally, we learned how to prevent zombie processes.
In the next chapter, we are going to learn more about security, including how to protect our application by applying the best practices available and how to evaluate CVEs and security vulnerabilities.