Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Master Node.js, Express, and MongoDB Complete Bootcamp
1. Welcome
1. Course Structure and Projects (6:45)
3. Let's Install Node.js (5:24)
2. Introduction to Node.js and NPM
1. Section Intro (0:54)
2. What Is Node.js and Why Use It (7:38)
3. Running Javascript Outside the Browser (6:27)
4. Using Modules 1 Core Modules (5:59)
5. Reading and Writing Files (7:28)
6. Blocking and Non-Blocking Asynchronous Nature of Node.js (10:13)
7. Reading and Writing Files Asynchronously (14:16)
8. Creating a Simple Web Server (12:49)
9. Routing (15:18)
10. Building a (Very) Simple API (14:28)
11. HTML Templating Building the Templates (14:02)
12. HTML Templating Filling the Templates (20:45)
13. Parsing Variables from URLs (10:23)
14. Using Modules 2 Our Own Modules (6:34)
15. Introduction to NPM and the package.json File (5:17)
16. Types of Packages and Installs (13:39)
17. Using Modules 3 3rd Party Modules (7:55)
18. Package Versioning and Updating (11:45)
19. Setting up Prettier in VS Code (11:27)
20. Recap and What's Next (2:56)
3. Introduction to Back-End Web Development
1. Section Intro (0:46)
3. HTTP in Action (5:29)
2. An Overview of How the Web Works (13:28)
4. Front-End vs. Back-End Web Development (6:02)
5. Static vs Dynamic vs API (9:15)
4. How Node.js Works A Look Behind the Scenes
1. Section Intro (1:24)
2. Node, V8, Libuv and C++ (3:47)
3. Processes, Threads and the Thread Pool (4:21)
4. The Node.js Event Loop (11:33)
5. The Event Loop in Practice (18:50)
6. Events and Event-Driven Architecture (4:18)
7. Events in Practice (13:54)
8. Introduction to Streams (6:17)
9. Streams in Practice (16:06)
10. How Requiring Modules Really Works (9:39)
11. Requiring Modules in Practice (15:51)
5. [Optional] Asynchronous JavaScript Promises and AsyncAwait
1. Section Intro (0:57)
2. The Problem with Callbacks Callback Hell (12:46)
3. From Callback Hell to Promises (6:42)
4. Building Promises (14:42)
5. Consuming Promises with AsyncAwait (7:48)
6. Returning Values from Async Functions (13:03)
7. Waiting for Multiple Promises Simultaneously (6:11)
6. Express Let's Start Building the Natours API!
1. Section Intro (0:56)
2. What is Express (2:01)
3. Installing Postman (3:25)
4. Setting up Express and Basic Routing (14:47)
5. APIs and RESTful API Design (16:07)
6. Starting Our API Handling GET Requests (12:19)
7. Handling POST Requests (15:21)
8. Responding to URL Parameters (11:47)
9. Handling PATCH Requests (7:05)
10. Handling DELETE Requests (2:40)
11. Refactoring Our Routes (6:47)
12. Middleware and the Request-Response Cycle (4:48)
13. Creating Our Own Middleware (9:05)
14. Using 3rd-Party Middleware (9:35)
15. Implementing the Users Routes (6:57)
16. Creating and Mounting Multiple Routers (8:04)
17. A Better File Structure (18:19)
18. Param Middleware (10:54)
19. Chaining Multiple Middleware Functions (7:34)
20. Serving Static Files (5:27)
21. Environment Variables (16:38)
22. Setting up ESLint + Prettier in VS Code (13:33)
7. Introduction to MongoDB
1. Section Intro (0:48)
2. What is MongoDB (8:44)
3. Installing MongoDB on macOS (6:34)
4. Installing MongoDB on Windows (10:02)
5. Creating a Local Database (7:39)
6. CRUD Creating Documents (4:17)
7. CRUD Querying (Reading) Documents (12:26)
8. CRUD Updating Documents (7:50)
9. CRUD Deleting Documents (2:47)
10. Using Compass App for CRUD Operations (7:10)
11. Creating a Hosted Database with Atlas (4:27)
12. Connecting to Our Hosted Database (7:35)
8. Using MongoDB with Mongoose
1. Section Intro (0:55)
2. Connecting Our Database with the Express App (12:24)
3. What Is Mongoose (1:53)
4. Creating a Simple Tour Model (7:01)
5. Creating Documents and Testing the Model (9:02)
6. Intro to Back-End Architecture MVC, Types of Logic, and More (6:54)
7. Refactoring for MVC (6:31)
8. Another Way of Creating Documents (13:53)
9. Reading Documents (8:35)
10. Updating Documents (10:51)
11. Deleting Documents (4:09)
12. Modelling the Tours (18:13)
13. Importing Development Data (15:40)
14. Making the API Better Filtering (18:45)
15. Making the API Better Advanced Filtering (12:04)
16. Making the API Better Sorting (10:59)
17. Making the API Better Limiting Fields (6:18)
18. Making the API Better Pagination (14:59)
19. Making the API Better Aliasing (8:56)
20. Refactoring API Features (15:38)
21. Aggregation Pipeline Matching and Grouping (20:37)
22. Aggregation Pipeline Unwinding and Projecting (19:28)
23. Virtual Properties (6:23)
24. Document Middleware (14:29)
25. Query Middleware (13:54)
26. Aggregation Middleware (7:42)
27. Data Validation Built-In Validators (10:06)
28. Data Validation Custom Validators (14:02)
9. Error Handling with Express
1. Section Intro (0:41)
2. Debugging Node.js with ndb (20:29)
3. Handling Unhandled Routes (7:50)
4. An Overview of Error Handling (3:36)
5. Implementing a Global Error Handling Middleware (8:59)
6. Better Errors and Refactoring (11:12)
7. Catching Errors in Async Functions (14:53)
8. Adding 404 Not Found Errors (9:06)
9. Errors During Development vs Production (10:30)
10. Handling Invalid Database IDs (9:42)
11. Handling Duplicate Database Fields (6:04)
12. Handling Mongoose Validation Errors (8:24)
13. Errors Outside Express Unhandled Rejections (8:49)
14. Catching Uncaught Exceptions (9:16)
10. Authentication, Authorization and Security
1. Section Intro (0:58)
2. Modelling Users (10:00)
3. Creating New Users (11:19)
4. Managing Passwords (18:24)
5. How Authentication with JWT Works (8:46)
6. Signing up Users (16:01)
7. Logging in Users (26:35)
8. Protecting Tour Routes - Part 1 (14:57)
9. Protecting Tour Routes - Part 2 (35:14)
10. Advanced Postman Setup (11:35)
11. Authorization User Roles and Permissions (15:54)
12. Password Reset Functionality Reset Token (17:03)
13. Sending Emails with Nodemailer (23:04)
14. Password Reset Functionality Setting New Password (21:33)
15. Updating the Current User Password (16:36)
16. Updating the Current User Data (20:11)
17. Deleting the Current User (10:28)
18. Security Best Practices (10:13)
19. Sending JWT via Cookie (9:45)
20. Implementing Rate Limiting (7:04)
21. Setting Security HTTP Headers (5:19)
22. Data Sanitization (9:15)
23. Preventing Parameter Pollution (8:20)
11. Modelling Data and Advanced Mongoose
1. Section Intro (1:02)
2. MongoDB Data Modelling (24:39)
3. Designing Our Data Model (10:57)
4. Modelling Locations (Geospatial Data) (12:25)
5. Modelling Tour Guides Embedding (7:48)
6. Modelling Tour Guides Child Referencing (4:56)
7. Populating Tour Guides (10:42)
8. Modelling Reviews Parent Referencing (8:30)
9. Creating and Getting Reviews (17:03)
10. Populating Reviews (6:06)
11. Virtual Populate Tours and Reviews (12:01)
12. Implementing Simple Nested Routes (13:29)
13. Nested Routes with Express (8:00)
14. Adding a Nested GET Endpoint (5:06)
15. Building Handler Factory Functions Delete (14:21)
16. Factory Functions Update and Create (13:22)
17. Factory Functions Reading (14:41)
18. Adding a me Endpoint (4:42)
19. Adding Missing Authentication and Authorization (14:44)
20. Importing Review and User Data (7:26)
21. Improving Read Performance with Indexes (16:11)
22. Calculating Average Rating on Tours - Part 1 (22:25)
23. Calculating Average Rating on Tours - Part 2 (15:56)
24. Preventing Duplicate Reviews (9:29)
25. Geospatial Queries Finding Tours Within Radius (29:52)
26. Geospatial Aggregation Calculating Distances (16:28)
27. Creating API Documentation Using Postman (10:37)
12. Server-Side Rendering with Pug Templates
1. Section Intro (0:56)
2. Recap Server-Side vs Client-Side Rendering (5:15)
3. Setting up Pug in Express (10:07)
4. First Steps with Pug (14:37)
5. Creating Our Base Template (15:24)
6. Including Files into Pug Templates (4:45)
7. Extending Our Base Template with Blocks (10:06)
8. Setting up the Project Structure (5:57)
9. Building the Tour Overview - Part 1 (11:37)
10. Building the Tour Overview - Part 2 (15:52)
11. Building the Tour Page - Part 1 (20:28)
12. Building the Tour Page - Part 2 (25:49)
13. Including a Map with Mapbox - Part 1 (11:33)
14. Including a Map with Mapbox - Part 2 (27:51)
15. Building the Login Screen (6:30)
16. Logging in Users with Our API - Part 1 (20:53)
17. Logging in Users with Our API - Part 2 (18:39)
18. Logging in Users with Our API - Part 3 (28:15)
19. Logging out Users (13:56)
20. Rendering Error Pages (21:45)
21. Building the User Account Page (16:05)
22. Updating User Data (17:07)
23. Updating User Data with Our API (12:34)
24. Updating User Password with Our API (14:41)
13. Advanced Features Payments, Email, File Uploads
1. Section Intro (0:32)
2. Image Uploads Using Multer Users (10:12)
3. Configuring Multer (13:45)
4. Saving Image Name to Database (5:32)
5. Resizing Images (13:19)
6. Adding Image Uploads to Form (11:33)
7. Uploading Multiple Images Tours (12:02)
8. Processing Multiple Images (18:11)
9. Building a Complex Email Handler (19:57)
10. Email Templates with Pug Welcome Emails (15:08)
11. Sending Password Reset Emails (7:07)
12. Using Sendgrid for Real Emails (9:32)
13. Credit Card Payments with Stripe (10:08)
14. Integrating Stripe into the Back-End (22:34)
15. Processing Payments on the Front-End (23:04)
16. Modelling the Bookings (6:23)
17. Creating New Bookings on Checkout Success (19:07)
18. Rendering a User's Booked Tours (11:16)
19. Finishing the Bookings API (7:12)
20. Final Considerations (7:28)
14. Setting Up Git and Deployment
1. Section Intro (0:40)
2. Setting Up Git and GitHub (4:38)
3. Git Fundamentals (10:33)
4. Pushing to GitHub (10:27)
5. Preparing Our App for Deployment (10:55)
6. Deploying Our App to Heroku (26:30)
7. Testing for Secure HTTPS Connections (5:52)
8. Responding to a SIGTERM Signal (7:21)
9. Implementing CORS (15:53)
10. Finishing Payments with Stripe Webhooks (38:08)
15. That's It, Everyone!
1. Where to Go from Here (3:39)
Teach online with
15. Making the API Better Advanced Filtering
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock