Chapter 1, Debugging Processes, David Mark Clements
Debugging Processes explores some excellent debugging tools for Node, along with techniques and practices to increase visibility and process information as we encounter debugging scenarios.
Chapter 2, Writing Modules, David Mark Clements
Writing Modules teaches how Node's module system works and how to create modules for various scenarios according to industry best practices.
Chapter 3, Coordinating I/O, David Mark Clements
Coordinating I/O explores some core APIs provided by Node, along with a few third-party utilities that allow us to interact with standard I/O, the filesystem, and the network stack.
Chapter 4, Using Streams, Mathias Buus and David Mark Clements
Using Streams explains why streams are so important, how they bring functional programming to an asynchronous world, and how to avoid stream gotchas.
Chapter 5, Wielding Web Protocols, David Mark Clements
Wielding Web Protocols demonstrates how to work with the web at a low level without using web framework. In this chapter, we will explore how to implement clients and servers using various web protocols, including HTTP, SMTP, and WebSockets.
Chapter 6, Persisting to Databases, David Mark Clements
Persisting to Databases takes you through a cross-section of database systems, such as MySQL/MariaDB, Postgres, Redis, MongoDB, and LevelDB, and how to interact with them from within a Node process.
Chapter 7, Working with Web Frameworks, David Mark Clements
Working with Web Frameworks is an exploration creating web applications with three of the most popular web frameworks: Express, Hapi, and Koa. From scaffolding to using middleware/plugins, to working with views, to implementing authentication, this chapter supplies a comprehensive tour through creating a web application with a web framework in Node.js.
Chapter 8, Dealing with Security, David Mark Clements
Dealing with Security covers various attacks that can be made against a system and shows common programmer errors that lead to vulnerable systems, along with some best practices and approaches that help create secure systems.
Chapter 9, Optimizing Performance, Matteo Collina, and David Mark Clements
Optimizing Performance provides an optimization workflow focused on measurement, alteration, and iteration. This chapter demonstrates how to identify bottlenecks, refactor for performance, and develop habits for writing efficient, optimizable JavaScript as an everyday practice.
Chapter 10, Building Microservice Systems, Peter Elger, and David Mark Clements
Building Microservice Systems teaches what microservices are, how they inherently facilitate the scaling up of robust production systems, and what's available in the ecosystem to assist in microservice development.
Chapter 11, Deploying Node.js, Peter Elger, and David Mark Clements
Deploying Node.js demonstrates how to put a multiprocess Node.js system into production, from containerizing processes with Docker to creating a Kubernetes cluster, to building a CI deployment pipeline and deploying associated infrastructure (such as a Docker Registry), to deploying an entire system to a cloud provider.