Autoplay
Autocomplete
Previous Lesson
Complete and Continue
NodeJS
Course Kickoff
Intro (0:49)
Course Resources
Useful Info
Discord Server
What is Node.js (1:15)
Course Requirements (1:20)
Course Structure (0:43)
Node Tutorial
Install Node.js (3:18)
Browser VS Server (2:51)
REPL (2:17)
CLI (5:36)
Source Code (1:20)
Globals (9:01)
Modules Setup (3:10)
First Module (12:23)
Alternative Syntax (4:11)
Mind Grenade (3:55)
Built-in Modules Intro (2:44)
OS - Module (7:22)
PATH - Module (5:43)
FS - Module (sync) (8:04)
FS - Module (async) (8:49)
Sync vs Async (6:50)
HTTP Intro (1:30)
HTTP - Module (setup) (4:56)
HTTP - Module (more features) (7:14)
NPM Info (4:22)
NPM Command (2:50)
First Packages and package.json (9:43)
Share Code on Github (6:12)
Nodemon (5:59)
Uninstall Package (2:48)
Global Install (5:30)
Package Lock (2:34)
Important Topics - Intro (1:42)
Event Loop - Intro (3:09)
Event Loop - Info (6:59)
Event Loop - Code Examples (9:21)
Async Patterns - Blocking Code (7:42)
Async Patterns - Setup Promises (5:46)
Async Patterns - Refactor to Async (5:30)
Async Patterns - Node's Native Option (6:36)
Events Info (2:03)
Events Emitter - Code Example (3:53)
Events Emitter - Additional Info (3:07)
Events Emitter - HTTP Module Example (3:26)
Streams Intro (1:08)
Streams - Read File (6:43)
Streams - Additional Info (2:04)
Streams - HTTP Example (5:24)
End of Module (0:17)
Express Tutorial
HTTP Request/Response Cycle (3:58)
Github Repository
HTTP Messages (11:02)
Starter Project Install (2:06)
Starter Overview (5:25)
HTTP - Basics (11:43)
HTTP - Headers (9:40)
HTTP - Request Object (7:09)
HTTP - HTML File (5:19)
HTTP - App Example (10:41)
Express Info (3:48)
Express Basics (11:14)
Express - App Example (11:26)
Express - All Static (3:41)
API VS SSR (5:53)
JSON - Basics (8:32)
Params, Query String - Setup (6:32)
Params (9:11)
Params - Extra Info (2:16)
Query String (16:48)
Additional Params and Query String Info (3:15)
Middleware - Setup (10:41)
APP.USE (7:04)
Multiple Middleware Functions (8:05)
Additional Middleware Info (6:50)
Methods - GET (5:34)
Methods - POST (Setup) (3:52)
Methods - POST (Form Example) (12:38)
Methods - POST (Javascript Example) (15:52)
Install Postman (8:57)
Methods - PUT (11:24)
Methods - DELETE (8:22)
Express Router - Setup (15:31)
Express Router - Controllers (11:00)
Projects Intro and Setup
Intro (0:48)
Setup
Install (1:33)
Task Manager API
Intro (2:38)
Setup (2:20)
Basic Express Server (3:42)
General Routes (1:58)
Route Structure and Details (3:13)
getAllTasks (8:07)
All Routes (3:33)
Postman Setup (9:17)
REST (3:59)
MongoDB Intro (1:44)
Atlas Setup (2:46)
DB, Network Access and Connection String (5:28)
Additional Info (0:56)
MongoDB Overview (4:24)
CRUD - GUI Example (2:27)
Mongoose Info (2:20)
Setup Database Connection (6:31)
Refactor Connect (5:05)
ENV VARS (4:55)
First Schema and Model (4:42)
Create Task (5:36)
Schema Info (2:15)
Basic Validation (8:55)
Try/Catch Block (4:01)
Get All Tasks Controller (6:15)
Get Single Task Controller (8:25)
Two Errors (2:00)
Delete Task (7:35)
Update Task (8:56)
Add Front-End (5:08)
PUT VS PATCH (6:48)
Response Types (5:22)
NOT FOUND (4:13)
Async Wrapper (9:57)
Custom Error Handler (5:57)
Custom Error Class (11:50)
PORT Variable (3:01)
Outro (0:04)
Store API
Intro (1:49)
Setup (1:02)
Basic Express App (8:02)
Setup DB Connection (3:12)
Router (5:31)
Postman Setup (2:03)
EXPRESS-ASYNC-ERRORS (4:21)
Product Model (8:00)
Populate DB (9:36)
Basic Find (5:11)
Query Params (5:31)
Mongoose V6 Update (0:48)
Refactor to QueryObject (6:25)
Company (3:42)
Name (8:14)
Sort - General Setup (6:44)
Sort - getAllProducts Implementation (7:56)
Select Option (3:58)
Skip and Limit - General Info (3:27)
Pagination (7:27)
Numeric Filters - Setup (3:17)
Numeric Filters - Regex (7:49)
Numeric Filters - Complete (4:42)
Outro (0:08)
JWT - Basics
Intro (3:54)
Setup (4:53)
Controllers (6:37)
Postman Setup (2:42)
Validate Username and Password (8:52)
JWT - Overview (2:21)
JWT - Structure (4:44)
Useful Package (0:31)
Sign JWT (6:51)
Bearer Token - Overview (4:13)
Send Bearer Token (2:35)
Check Auth Header (4:05)
Verify Token (5:12)
Auth Middleware Setup (4:04)
Auth Middleware Complete (6:19)
More Error Classes (5:42)
Status Codes (2:53)
More Refactor - Complete App (6:18)
Jobs API
Intro (4:11)
Setup (4:58)
Controllers (2:53)
Routes (7:01)
Setup DB Connection (2:06)
User Schema (5:47)
Create User - Basic Setup (6:02)
Error Checking - Controller Example (3:58)
Hashing Password Info (1:54)
Hash User Password (6:51)
Mongoose Middleware (6:27)
Generate Token - Controller (7:09)
Generate Token - Instance Method (5:32)
JWT_SECRET and JWT_LIFETIME (3:19)
Login Controller Setup (7:19)
Compare Password (6:56)
Auth Middleware - Setup (7:48)
Auth Middleware - Testing (5:54)
Alternative Code (1:42)
Job Model (6:19)
Create Job Route (7:49)
Get All Jobs (4:13)
Set Token Dynamically in Postman (5:10)
Get Single Job (6:26)
Update Job (6:51)
Remove Job (4:51)
Duplicate Error (9:24)
Custom Error (1:46)
Validation Error (6:24)
Cast Error (3:45)
Security Info and Packages (3:09)
Security Setup (3:04)
Additional Info (0:18)
Heroku Update !!! (1:19)
Heroku Info (2:16)
Deploy on Heroku (15:59)
Swagger UI Info (1:05)
Clone Existing Heroku Project (3:14)
Export Postman Docs (1:59)
APIMATIC Info (0:38)
APIMATIC Setup (5:09)
Swagger UI Editor (5:56)
Add Swagger UI (7:17)
Render Signup (3:30)
Github Repo (3:26)
Render Deployment (5:32)
Jobster API (extra project)
Intro (3:43)
Setup (5:32)
Spring Cleaning (5:37)
Client Folder (3:48)
Setup Front-End (5:48)
Modify User Model (3:16)
Modify Register and Login (5:34)
Create Test User (3:58)
Update User - Setup (8:20)
Update User - Complete (7:26)
Password "Gotcha" (7:05)
Complete Jobs CRUD Functionality (7:54)
Fake Data - Mockaroo (9:51)
Populate DB (5:37)
Search Functionality - Intro (8:43)
Search Input (5:22)
Status and JobType (3:34)
Sort (4:37)
Pagination (10:28)
Check For Test User in Auth Middleware (6:35)
Restrict CRUD to Test User (4:22)
API Limiter (4:26)
Stats Intro (5:41)
ShowStats Controller (3:18)
Setup Status Aggregation Pipeline (6:52)
Refactor Status Data (6:46)
Setup Monthly Applications Aggregation Pipeline (8:18)
Refactor Monthly Applications Data (4:04)
Deployment (6:28)
File/Image Upload
Intro (1:47)
Setup (4:46)
Product Model (1:51)
Basic Structure (8:11)
Postman Setup (2:42)
Create Product (Fail) (5:22)
Upload Image - Postman (3:15)
Useful Package (11:05)
Complete File Upload (8:55)
Additional Checks (6:16)
Cloudinary INtro (2:49)
Cloudinary Setup (3:20)
Upload Image To Cloudinary (11:09)
Remove Temp Files (2:37)
Send Emails
Intro (0:44)
Setup (4:29)
Nodemailer Info (2:17)
Ethereal Info and Account (2:48)
Send Emails with Ethereal (4:47)
SendGrid Info (1:01)
Sender Identity (1:27)
Send Emails with SendGrid (7:12)
Stripe Payment
Intro (0:38)
Setup (1:43)
General Overview (2:12)
API Keys (0:54)
Flow Overview (5:30)
Controller Setup (6:11)
Complete Payment (7:22)
E-Commerce API
Intro (0:41)
Setup (2:23)
Basic Express Server (4:37)
Setup DB Connection (4:49)
Basic Routes (5:43)
NotFound VS ErrorHandler Middleware (3:51)
Morgan Package (3:19)
User Model (6:17)
Validator Package (3:11)
Auth Routes Structure (7:38)
Postman Environment Setup (5:02)
Register - Initial Setup (4:46)
Register - Unique Email (2:51)
User Roles (6:12)
Hash Passwords (5:41)
JWT Setup (5:28)
Refactor JWT Setup (6:29)
Cookies Setup (7:50)
Parse Cookies (5:48)
Refactor Cookies Setup (7:00)
Signed and Secure Flags (3:29)
Login Route (5:34)
Logout Route (6:32)
Cookies - Big Picture and "Gotchas" (21:34)
User Routes - Structure (9:51)
User Routes - Postman (6:11)
getAllUsers and getSingleUser (5:32)
Authenticate User - Setup (7:32)
Authenticate User - Complete (5:32)
Authorize Permissions - Setup (6:38)
Authorize Permissions - Complete (8:21)
ShowMe Controller (4:36)
UpdatePassword Controller (8:42)
CreateTokenUser Function (4:08)
UpdateUser Controller - FindOneAndUpdate() (8:01)
UpdateUser Controller - user.save() (9:02)
CheckPermissions Function (10:35)
Auth Complete (1:26)
Product Model (12:52)
Product Routes - Structure (10:53)
Product Routes - Postman (4:56)
CreateProduct Controller (10:16)
Remaining Product Controllers (11:27)
Upload Image Controller (12:41)
Review Model (7:32)
Reviews Routes Structure (5:49)
Review Routes - Postman (3:15)
Create Review Controller (9:20)
Get All Reviews and Get Single Review Controller (4:25)
Delete Review Controller (5:00)
Update Review Controller (5:12)
Populate Method (3:02)
Mongoose Virtuals (7:02)
Alternative Single Product Reviews (5:29)
Remove All Reviews (5:01)
Aggregate Pipeline - Setup (9:27)
Reset Database (2:18)
Aggregate Pipeline - Atlas (10:37)
Aggregate Pipeline - Review Model (10:37)
Additional Group ID Example (5:22)
Order Schema (11:07)
Order Structure (8:20)
Order - Postman Setup (3:48)
Create Order - Check Product (16:41)
Create Order - Complete (9:34)
All Order Routes (10:04)
Docgen - Install (1:35)
Docgen - Create Docs (3:17)
Security Packages (4:03)
Deploy on Heroku (7:09)
Small Fixes (7:01)
Deploy To Render (2:48)
Auth Workflow
01-setup (6:53)
Setup (10:12)
Register Controller - Refactor (10:48)
Login Controller - Refactor (3:35)
Proper Verification Token (3:08)
Verify Email - Big Picture (3:23)
Verify Email Controller - Setup (5:51)
Verity Email Controller - Complete (6:33)
Send Email - Setup (12:34)
Send Email - First Part (10:57)
Send Email - Second Part (9:47)
Front-End and Origin Gotchas (12:41)
Refresh Token - Big Picture (5:11)
Token Model (3:16)
Create Token in Login Controller (7:31)
Send Multiple Cookies (8:24)
Check for Existing Token (5:28)
Refactor Auth Middleware - AccessToken (5:58)
Refactor Auth Middleware - RefreshToken (6:51)
Fix Logout Functionality (8:42)
Forgot/Reset Password Structure (5:23)
Forgot Password Controller (9:41)
Send Reset Password Email (11:25)
Reset Password Controller (5:55)
Hash Token (4:51)
Teach online with
Create Task
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock