1.1. A typical Node web application
1.5. The three main types of Node program
Chapter 2. Node programming fundamentals
2.1. Organizing and reusing Node functionality
2.2. Starting a new Node project
2.3. Fine-tuning module creation by using module.exports
2.4. Reusing modules by using the node_modules folder
2.6. Using asynchronous programming techniques
2.7. Handling one-off events with callbacks
2.8. Handling repeating events with event emitters
2.8.1. An example event emitter
2.8.2. Responding to an event that should occur only once
2.9. Challenges with asynchronous development
2.10. Sequencing asynchronous logic
2.11. When to use serial flow control
2.12. Implementing serial flow control
Chapter 3. What is a Node web application?
3.1. Understanding a Node web application’s structure
3.2. Building a RESTful web service
Chapter 4. Front-end build systems
4.1. Understanding front-end development with Node
4.3. Providing automation with Gulp
4.3.1. Adding Gulp to a project
4.4. Building web apps with webpack
4.4.1. Using bundles and plugins
4.4.2. Configuring and running webpack
Chapter 5. Server-side frameworks
Chapter 6. Connect and Express in depth
6.1.1. Setting up a Connect application
6.1.2. Understanding how Connect middleware works
6.2.1. Generating the application skeleton
6.2.2. Configuring Express and your application
6.2.7. Logging in registered users
6.2.8. Working with user-loading middleware
Chapter 7. Web application templating
7.1. Using templating to keep code clean
7.2. Templating with Embedded JavaScript
7.3. Using the Mustache templating language with Hogan
Chapter 8. Storing application data
8.2.1. Performing installation and setup
8.3.2. Connecting and running queries with Knex
8.5.1. Atomicity: transactions either succeed or fail in entirety
8.5.2. Consistency: constraints are always enforced
8.8.1. Performing installation and setup
8.10.1. Performing installation and setup
8.10.2. Performing initialization
8.10.3. Working with key/value pairs
8.10.5. Encoding and data types
8.13. Serialization and deserialization are expensive
8.14.1. Web storage: localStorage and sessionStorage
Chapter 9. Testing Node applications
9.3. Dealing with failing tests
Chapter 10. Deploying Node applications and maintaining uptime
10.1. Hosting Node applications
10.2. Understanding deployment basics
10.3. Maximizing uptime and performance
10.3.1. Maintaining uptime with Upstart
Chapter 11. Writing command-line applications
11.1. Understanding conventions and philosophy
11.3. Using command-line arguments
11.4. Sharing command-line tools with npm
11.5. Connecting scripts with pipes
11.5.1. Piping data into parse-json
Chapter 12. Conquering the desktop with Electron
12.2. Creating an Electron app
12.3. Building a full desktop application
12.3.1. Bootstrapping React and Babel
12.4.1. Defining the Request component
A.1. Installing Node by using an installer
A.2. Using other ways to install Node
Appendix B. Automating the web with scraping
B.1. Understanding web scraping
B.2. Performing basic web scraping with cheerio
Appendix C. Connect’s officially supported middleware
C.1. Parsing cookies, request bodies, and query strings
C.1.1. cookie-parser: parse HTTP cookies
C.2. Implementing core web application functions
C.2.2. serve-favicon: address bar and bookmark icons
C.3. Handling web application security
C.3.1. basic-auth: HTTP Basic authentication
C.4.1. serve-static: automatically serving files to the browser