Course Highlights
  • Absolutely master the Event Loop and understand each of its stages
  • Utilize Worker Threads and Clustering to dramatically improve the performance of Node servers
  • Speed up database queries with caching for MongoDB backed by Redis
  • Add automated browser testing to your Node server, complete with continuous integration pipeline setup
  • Apply scalable image and file upload to your app, utilizing AWS S3
Skills you will learn!
Curriculum

24 Topics
How to Get Help
Course Resources
Join Our Community!
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

15 Topics
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
Important Note about the Upcoming Videos
Webworker Threads
Worker Threads in Action
Benchmarking Workers

7 Topics
The Next Phase
Updated Boilerplate
Project Walkthrough
Key Customization
MongoDB Altas Setup and Configuration
MongoDB Creation
Routes Walkthrough

28 Topics
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

55 Topics
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
Assembling the Session Factory
Code Separation
Required Update to Global Jest setup.js
Global Jest Setup
Testing Factory Tests!
Adding a Login Method
Extending Page
Introduction to Proxies
Proxies in Action
Combining Object Property Access
Combining the Page and Browser
Custom Page Implementation
Function Lookup Priority
Gee I Hope This Works!
Reusable Functions on Page
Testing Blog Creation
Default Navigation
Asserting Form Display
Test Timeout
Common Test Setup
Nested Describes for Structure
Asserting Validation Errors
Asserting Form Confirmation
Asserting Blog Creation
Options for Testing Prohibited Actions
Direct API Requests
Executed Arbitrary JS in Chromium
Asserting Page Response
Get Restrictions
A Final 'GET' Test
Super Advanced Test Helpers
Completed Code Checkpoint

17 Topics
Introduction to CI
CI Providers
The Basics of YAML Files
Github Actions instead of Travis for CI
Travis YAML Setup
More Travis YAML
Client Builds
Script Config
Using Travis Documentation
More Server Configuration
Note - Travis Update
A Touch More Configuration
Git Repo Setup
Travis CI Setup
Triggering CI Builds
Build Success
Completed Code Checkpoint

32 Topics
Image Upload
Big Issues Around Image Upload
Alternate Image Upload
Chosen Storage Solution
Upload Constraints
Image File Transport
Upload Flow with AWS S3
Details of the Presigned URL
Security Issues Solved with Presigned URL's
Adding an Image Picker
Handling File Changes
Recording Image Files
The SubmitBlog Function
AWS Credentials with IAM
Creating S3 Buckets
Allowing Actions with IAM Policies
Creating IAM Users
Upload Routes Files
Required update for uploadRoutes
Configuring the AWS SDK
GetSignedURL Arguments
Calling GetSignedURL
Viewing the Signed URL
Attempting Image Upload
CORS Configuration in JSON Form
Handling CORS Errors
Outstanding Issues
S3 Bucket Policies
Tying Uploads to Blogs
Ensuring Images get Tied
Displaying Images
Completed Code

1 Topic
Bonus!

  Write a Review

Node JS: Advanced Concepts

Go to Paid Course