The Internals of Node
  • How to Get Help
  • Join Our Community!
  • Course Resources
  • Starting With Node Internals
  • Module Implementations
  • Node Backed by C++!
  • Test Your Knowledge - Node's Implementation
  • The Basics of Threads
  • The Node Event Loop
  • The Event Loop Implementation
  • Event Loop Ticks
  • Is Node Single Threaded?
  • Testing for Single Threads
  • The Libuv Thread Pool
  • Threadpools with Multithreading
  • Changing Threadpool Size
  • Common Threadpool Questions
  • Explaining OS Operations
  • Libuv OS Delegation
  • OS/Async Common Questions
  • Review
  • Check Your Knowledge - The Event Loop
  • Crazy Node Behavior
  • Unexpected Event Loop Events
Enhancing Node Performance
  • Enhancing Performance
  • Express Setup
  • Blocking the Event Loop
  • Clustering in Theory
  • Forking Children
  • Clustering in Action
  • Benchmarking Server Performance
  • Benchmark Refactor
  • Need More Children!
  • PM2 Installation
  • PM2 Configuration
  • Webworker Threads
  • Worker Threads in Action
  • Benchmarking Workers
Project Setup
  • The Next Phase
  • Project Walkthrough
  • Key Customization
  • MongoDB Atlas Setup and Configuration
  • MongoDB Creation
  • Routes Walkthrough
Data Caching with Redis
  • MongoDB Query Performance
  • Query Caching Layer
  • Redis Introduction
  • Installing Redis on MacOS
  • Redis on Windows
  • Getting and Setting Basic Values
  • Redis Hashes
  • One Redis Gotcha
  • Cache Keys
  • Promisifying a Function
  • Caching in Action
  • Caching Issues
  • The Ultimate Caching Solution
  • Patching Mongoose's Exec
  • Restoring Blog Routes Handler
  • Unique Keys
  • Key Creation
  • Restoring Redis Config
  • Cache Implementation
  • Resolving Values
  • Hydrating Models
  • Hydrating Arrays
  • Toggleable Cache
  • Cache Expiration
  • Forced Cache Expiration
  • Nested Hashes
  • Clearing Nested hashes
  • Automated Cache Clearing with Middlware
Automated Headless Browser Testing
  • Testing Flow
  • Testing Challenges
  • Commands Around Testing
  • First Jest Test
  • Launching Chromium Instances
  • Chromium Navigation
  • Extracting Page Content
  • Puppeteer - Behind the Scenes
  • DRY Tests
  • Browser Termination
  • Asserting OAuth Flow
  • Asserting URL Domain
  • Issues with OAuth
  • Solving Authentication Issues with Automation Testing
  • The Google OAuth Flow
  • Inner Workings of Sessions
  • Sessions From Another Angle
  • Session Signatures
  • Generating Sessions and Signatures
  • Assembling the Pieces
  • WaitFor Statements
  • Factory Functions
  • The Session Factory