Node.js, Express, MongoDB & More: The Complete Bootcamp

Node.js, Express, MongoDB & More: The Complete Bootcamp

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 229 lectures (42h 12m) | 19.67 GB

Master Node by building a real-world RESTful API and web app (with authentication, Node.js security, payments & more)

Do you want to build fast and powerful back-end applications with JavaScript? Would you like to become a more complete and in-demand developer?

Then Node.js is the hot technology for you to learn right now, and you came to the right place to do it!

Welcome to the Complete Node.js, Express and MongoDB Bootcamp, your fast track to modern back-end development.

This course is the perfect all-in-one package that will take you from a complete beginner to an advanced, highly-skilled Node.js developer.

Like all my other courses, this one is completely project based! And not just any project: it’s a complete, beautiful and feature-rich application, containing both a RESTful API and a server-side rendered website. It’s the most fantastic and complete project that you will find in any Node.js course on the internet!

By building this huge project, you will learn all the skills that you need in order to plan, build and deploy your own modern back-end applications with Node.js and related technologies.

After finishing this course, you will:

1) Be building you own fast, scalable and powerful Node.js RESTful APIs or web applications;

2) Truly understand how Node.js works behind the scenes;

3) Be able to work with NoSQL data and model data in real-world situations (a hugely important skill);

4) Know how modern back-end development works, and how all the different technologies fit together (hard to understand from scattered tutorials and videos);

5) Have experience in professionally-used tools and libraries like Express, Mongoose, Stripe, Sendgrid, Atlas, Compass, Git, Heroku, and many more;

6) Have built a complete application, which is a perfect starting point for your own applications in the future.

Please note that this course is NOT for absolute web development beginners, so you should already be familiar with basic JavaScript. NO back-end experience required though!

It’s an absolutely full-packed, deep-dive course with over 40 hours of content!

Since this is the “Complete Node.js Bootcamp”, the course is crammed with tons of different technologies, techniques, and tools, so that you walk away from the course as a complete Node.js developer.

That’s why the course turned out to be over 40 hours long. But if that sound like too much for you, don’t worry, there are videos or entire sections that you can safely skip.

Here is exactly what you’re gonna learn:

  • Fundamentals of Node.js, core modules and NPM (Node Package Manager)
  • How Node.js works behind the scenes: event loop, blocking vs non-blocking code, event-driven architecture, streams, modules, etc.
  • Fundamentals of Express (Node.js framework): routing, middleware, sending responses, etc.
  • RESTful API design and development with advanced features: filtering, sorting, aliasing, pagination
  • Server-side website rendering (HTML) with Pug templates
  • CRUD operations with MongoDB database locally and on the Atlas platform (in the cloud)
  • Advanced MongoDB: geospatial queries, aggregation pipeline, and operators
  • Fundamentals of Mongoose (MongoDB JS driver): Data models, CRUD operations, data validation, and middleware
  • Advanced Mongoose features: modeling geospatial data, populates, virtual populates, indexes, etc.
  • Using the MVC (Model-View-Controller) architecture
  • How to work with data in NoSQL databases
  • Advanced data modelling: relationships between data, embedding, referencing, and more
  • Complete modern authentication with JWT: user sign up, log in, password reset, secure cookies, etc.
  • Authorization (user roles)
  • Security: best practices, encryption, sanitization, rate limiting, etc.
  • Accepting credit card payments with Stripe: Complete integration on the back-end and front-end
  • Uploading files and image processing
  • Sending emails with Mailtrap and Sendgrid
  • Advanced error handling workflows
  • Deploying Node.js application to production with Heroku
  • Git and GitHub crash course
  • And so much more!
Table of Contents

Welcome Welcome Welcome
1 Course Structure and Projects
3 Lets Install Nodejs

Introduction to Nodejs and NPM
4 Section Intro
5 What Is Nodejs and Why Use It
6 Running Javascript Outside the Browser
7 Using Modules 1 Core Modules
8 Reading and Writing Files
9 Blocking and NonBlocking Asynchronous Nature of Nodejs
10 Reading and Writing Files Asynchronously
11 Creating a Simple Web Server
12 Routing
13 Building a Very Simple API
14 HTML Templating Building the Templates
15 HTML Templating Filling the Templates
16 Parsing Variables from URLs
17 Using Modules 2 Our Own Modules
18 Introduction to NPM and the packagejson File
19 Types of Packages and Installs
20 Using Modules 3 3rd Party Modules
21 Package Versioning and Updating
22 Setting up Prettier in VS Code
23 Recap and Whats Next

Introduction to BackEnd Web Development
24 Section Intro
25 An Overview of How the Web Works
26 HTTP in Action
27 FrontEnd vs BackEnd Web Development
28 Static vs Dynamic vs API

How Nodejs Works A Look Behind the Scenes
29 Section Intro
30 Node V8 Libuv and C
31 Processes Threads and the Thread Pool
32 The Nodejs Event Loop
33 The Event Loop in Practice
34 Events and EventDriven Architecture
35 Events in Practice
36 Introduction to Streams
37 Streams in Practice
38 How Requiring Modules Really Works
39 Requiring Modules in Practice

Optional Asynchronous JavaScript Promises and AsyncAwait
40 Section Intro
41 The Problem with Callbacks Callback Hell
42 From Callback Hell to Promises
43 Building Promises
44 Consuming Promises with AsyncAwait
45 Returning Values from Async Functions
46 Waiting for Multiple Promises Simultaneously

Express Lets Start Building the Natours API
47 Section Intro
48 What is Express
49 Installing Postman
50 Setting up Express and Basic Routing
51 APIs and RESTful API Design
52 Starting Our API Handling GET Requests
53 Handling POST Requests
54 Responding to URL Parameters
55 Handling PATCH Requests
56 Handling DELETE Requests
57 Refactoring Our Routes
58 Middleware and the RequestResponse Cycle
59 Creating Our Own Middleware
60 Using 3rdParty Middleware
61 Implementing the Users Routes
62 Creating and Mounting Multiple Routers
63 A Better File Structure
64 Param Middleware
65 Chaining Multiple Middleware Functions
66 Serving Static Files
67 Environment Variables
68 Setting up ESLint Prettier in VS Code

Introduction to MongoDB
69 Section Intro
70 What is MongoDB
71 No Need to Install MongoDB Locally
72 OPTIONAL Installing MongoDB on macOS
73 OPTIONAL Installing MongoDB on Windows
74 OPTIONAL Creating a Local Database
75 OPTIONAL CRUD Creating Documents
76 OPTIONAL CRUD Querying Reading Documents
77 OPTIONAL CRUD Updating Documents
78 OPTIONAL CRUD Deleting Documents
79 Using Compass App for CRUD Operations
80 Creating a Hosted Database with Atlas
81 Connecting to Our Hosted Database

Using MongoDB with Mongoose
82 Section Intro
83 Connecting Our Database with the Express App
84 What Is Mongoose
85 Creating a Simple Tour Model
86 Creating Documents and Testing the Model
87 Intro to BackEnd Architecture MVC Types of Logic and More
88 Refactoring for MVC
89 Another Way of Creating Documents
90 Reading Documents
91 Updating Documents
92 Deleting Documents
93 Modelling the Tours
94 Importing Development Data
95 Making the API Better Filtering
96 Making the API Better Advanced Filtering
97 Making the API Better Sorting
98 Making the API Better Limiting Fields
99 Making the API Better Pagination
100 Making the API Better Aliasing
101 Refactoring API Features
102 Aggregation Pipeline Matching and Grouping
103 Aggregation Pipeline Unwinding and Projecting
104 Virtual Properties
105 Document Middleware
106 Query Middleware
107 Aggregation Middleware
108 Data Validation BuiltIn Validators
109 Data Validation Custom Validators

Error Handling with Express
110 Section Intro
111 Debugging Nodejs with ndb
112 Handling Unhandled Routes
113 An Overview of Error Handling
114 Implementing a Global Error Handling Middleware
115 Better Errors and Refactoring
116 Catching Errors in Async Functions
117 Adding 404 Not Found Errors
118 Errors During Development vs Production
119 Handling Invalid Database IDs
120 Handling Duplicate Database Fields
121 Handling Mongoose Validation Errors
122 Errors Outside Express Unhandled Rejections
123 Catching Uncaught Exceptions

Authentication Authorization and Security
124 Section Intro
125 Modelling Users
126 Creating New Users
127 Managing Passwords
128 How Authentication with JWT Works
129 Signing up Users
130 Logging in Users
131 Protecting Tour Routes Part 1
132 Protecting Tour Routes Part 2
133 Advanced Postman Setup
134 Authorization User Roles and Permissions
135 Password Reset Functionality Reset Token
136 Sending Emails with Nodemailer
137 Password Reset Functionality Setting New Password
138 Updating the Current User Password
139 Updating the Current User Data
140 Deleting the Current User
141 Security Best Practices
142 Sending JWT via Cookie
143 Implementing Rate Limiting
144 Setting Security HTTP Headers
145 Data Sanitization
146 Preventing Parameter Pollution

Modelling Data and Advanced Mongoose
147 Section Intro
148 MongoDB Data Modelling
149 Designing Our Data Model
150 Modelling Locations Geospatial Data
151 Modelling Tour Guides Embedding
152 Modelling Tour Guides Child Referencing
153 Populating Tour Guides
154 Modelling Reviews Parent Referencing
155 Creating and Getting Reviews
156 Populating Reviews
157 Virtual Populate Tours and Reviews
158 Implementing Simple Nested Routes
159 Nested Routes with Express
160 Adding a Nested GET Endpoint
161 Building Handler Factory Functions Delete
162 Factory Functions Update and Create
163 Factory Functions Reading
164 Adding a me Endpoint
165 Adding Missing Authentication and Authorization
166 Importing Review and User Data
167 Improving Read Performance with Indexes
168 Calculating Average Rating on Tours Part 1
169 Calculating Average Rating on Tours Part 2
170 Preventing Duplicate Reviews
171 Geospatial Queries Finding Tours Within Radius
172 Geospatial Aggregation Calculating Distances
173 Creating API Documentation Using Postman

ServerSide Rendering with Pug Templates
174 Section Intro
175 Recap ServerSide vs ClientSide Rendering
176 Setting up Pug in Express
177 First Steps with Pug
178 Creating Our Base Template
179 Including Files into Pug Templates
180 Extending Our Base Template with Blocks
181 Setting up the Project Structure
182 Building the Tour Overview Part 1
183 Building the Tour Overview Part 2
184 Building the Tour Page Part 1
185 Building the Tour Page Part 2
186 Including a Map with Mapbox Part 1
187 Including a Map with Mapbox Part 2
188 Building the Login Screen
189 Logging in Users with Our API Part 1
190 Logging in Users with Our API Part 2
191 Logging in Users with Our API Part 3
192 Logging out Users
193 Rendering Error Pages
194 Building the User Account Page
195 Updating User Data
196 Updating User Data with Our API
197 Updating User Password with Our API

Advanced Features Payments Email File Uploads
198 Section Intro
199 Image Uploads Using Multer Users
200 Configuring Multer
201 Saving Image Name to Database
202 Resizing Images
203 Adding Image Uploads to Form
204 Uploading Multiple Images Tours
205 Processing Multiple Images
206 Building a Complex Email Handler
207 Email Templates with Pug Welcome Emails
208 Sending Password Reset Emails
209 Using Sendgrid for Real Emails
210 Credit Card Payments with Stripe
211 Integrating Stripe into the BackEnd
212 Processing Payments on the FrontEnd
213 Modelling the Bookings
214 Creating New Bookings on Checkout Success
215 Rendering a Users Booked Tours
216 Finishing the Bookings API
217 Final Considerations

Setting Up Git and Deployment
218 Section Intro
219 Setting Up Git and GitHub
220 Git Fundamentals
221 Pushing to GitHub
222 Preparing Our App for Deployment
223 Deploying Our App to Heroku
224 Testing for Secure HTTPS Connections
225 Responding to a SIGTERM Signal
226 Implementing CORS
227 Finishing Payments with Stripe Webhooks

Thats It Everyone
228 Where to Go from Here
229 My Other Courses Updates