Skip to main content
CourseFlix

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

42h 15m 4s
English
Paid

You learn how to build clean and fast back-end apps with Node.js. This guide explains what the course covers and helps you see if it matches your goals. Read on to see the key skills you will build.

Course Overview

This course teaches you how to create real back-end apps with Node, Express, and MongoDB. You build one full project from start to finish. You work with an API, a server‑rendered website, and many tools used in real teams.

You should know basic JavaScript before you start. You do not need back-end skills.

What You Will Learn

Node and Express Basics

  • Use core Node modules and NPM.
  • Write routes and middleware in Express.
  • Send clear and useful HTTP responses.

How Node Works

  • Understand the event loop.
  • See the difference between blocking and non-blocking code.
  • Work with streams and Node modules.

Build a REST API

  • Add filters, sorts, and pagination.
  • Create clean controller logic.
  • Use the MVC pattern.

MongoDB and Mongoose

  • Create and edit data with CRUD actions.
  • Use schemas, validation, and middleware.
  • Model data with references and embedded documents.
  • Run geospatial queries and build indexes.

Auth and Security

  • Add signup, login, and password reset with JWT.
  • Use roles for user access control.
  • Protect your app with rate limits and sanitization.

Extra Features

  • Accept card payments with Stripe.
  • Upload and process images.
  • Send email with Mailtrap or SendGrid.
  • Handle errors in a clean workflow.

Deployment and Tools

  • Deploy your app on Heroku.
  • Use Git and GitHub in real projects.
  • Work with Atlas and Compass.

Why Learn Node.js

Node lets you use your JavaScript skills on the back-end. This makes it easier to build full-stack apps without switching languages. Many companies use Node in production, so the skills you learn here transfer well to jobs.

If you already know some Node, this course can fill gaps. It covers many areas that short tutorials skip.

What You Get

  • 40+ hours of video you can watch at your own pace.
  • Downloadable videos, code, and project assets.
  • Closed captions in English.
  • Quick support through the Q&A section.

Requirements

  • Basic JavaScript.
  • Basic HTML helps but is not required.
  • Any computer with Windows, macOS, or Linux.

Who This Course Helps

  • You want to build fast back-end apps with JavaScript.
  • You are a front-end dev moving into back-end work.
  • You took other Node courses but want more skill and confidence.
  • You already know Node and want deeper topics like auth, data models, and payments.

About the Author: udemy

udemy thumbnail

Udemy is a global online marketplace for teaching and learning. It connects students with instructors who share skills in many fields.

Who Uses Udemy

Millions of learners use Udemy to gain skills for work and personal growth. Companies, governments, and nonprofits also use Udemy to train their teams.

What Udemy Offers

Udemy provides a curated set of business and technical courses. These courses help teams build practical skills and support ongoing learning at work.

Watch Online 226 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 226 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Course Structure and Projects
All Course Lessons (226)
#Lesson TitleDurationAccess
1
Course Structure and Projects Demo
06:46
2
Let's Install Node.js
05:26
3
Section Intro
00:56
4
What Is Node.js and Why Use It?
07:40
5
Running Javascript Outside the Browser
06:28
6
Using Modules 1: Core Modules
06:00
7
Reading and Writing Files
07:29
8
Blocking and Non-Blocking: Asynchronous Nature of Node.js
10:14
9
Reading and Writing Files Asynchronously
14:17
10
Creating a Simple Web Server
12:51
11
Routing
15:19
12
Building a (Very) Simple API
14:29
13
HTML Templating: Building the Templates
14:04
14
HTML Templating: Filling the Templates
20:47
15
Parsing Variables from URLs
10:24
16
Using Modules 2: Our Own Modules
06:35
17
Introduction to NPM and the package.json File
05:18
18
Types of Packages and Installs
13:40
19
Using Modules 3: 3rd Party Modules
07:56
20
Package Versioning and Updating
11:46
21
Setting up Prettier in VS Code
11:28
22
Recap and What's Next
02:58
23
Section Intro
00:47
24
An Overview of How the Web Works
13:29
25
HTTP in Action
05:30
26
Front-End vs. Back-End Web Development
06:03
27
Static vs Dynamic vs API
09:16
28
Section Intro
01:25
29
Node, V8, Libuv and C++
03:48
30
Processes, Threads and the Thread Pool
04:22
31
The Node.js Event Loop
11:34
32
The Event Loop in Practice
18:51
33
Events and Event-Driven Architecture
04:19
34
Events in Practice
13:55
35
Introduction to Streams
06:18
36
Streams in Practice
16:07
37
How Requiring Modules Really Works
09:40
38
Requiring Modules in Practice
15:52
39
Section Intro
00:58
40
The Problem with Callbacks: Callback Hell
12:47
41
From Callback Hell to Promises
06:44
42
Building Promises
14:43
43
Consuming Promises with Async/Await
07:49
44
Returning Values from Async Functions
13:04
45
Waiting for Multiple Promises Simultaneously
06:12
46
Section Intro
00:57
47
What is Express?
02:02
48
Installing Postman
03:27
49
Setting up Express and Basic Routing
14:49
50
APIs and RESTful API Design
16:08
51
Starting Our API: Handling GET Requests
12:20
52
Handling POST Requests
15:22
53
Responding to URL Parameters
11:49
54
Handling PATCH Requests
07:06
55
Handling DELETE Requests
02:41
56
Refactoring Our Routes
06:48
57
Middleware and the Request-Response Cycle
04:49
58
Creating Our Own Middleware
09:06
59
Using 3rd-Party Middleware
09:36
60
Implementing the "Users" Routes
06:58
61
Creating and Mounting Multiple Routers
08:05
62
A Better File Structure
18:21
63
Param Middleware
10:55
64
Chaining Multiple Middleware Functions
07:35
65
Serving Static Files
05:28
66
Environment Variables
16:40
67
Setting up ESLint + Prettier in VS Code
13:34
68
Section Intro
00:49
69
What is MongoDB?
08:45
70
[OPTIONAL] Installing MongoDB on macOS
06:35
71
[OPTIONAL] Installing MongoDB on Windows
10:03
72
[OPTIONAL] Creating a Local Database
07:40
73
[OPTIONAL] CRUD: Creating Documents
04:18
74
[OPTIONAL] CRUD: Querying (Reading) Documents
12:27
75
[OPTIONAL] CRUD: Updating Documents
07:51
76
[OPTIONAL] CRUD: Deleting Documents
02:48
77
Using Compass App for CRUD Operations
07:12
78
Creating a Hosted Database with Atlas
04:28
79
Connecting to Our Hosted Database
07:36
80
Section Intro
00:57
81
Connecting Our Database with the Express App
12:25
82
What Is Mongoose?
01:54
83
Creating a Simple Tour Model
07:02
84
Creating Documents and Testing the Model
09:04
85
Intro to Back-End Architecture: MVC, Types of Logic, and More
06:55
86
Refactoring for MVC
06:32
87
Another Way of Creating Documents
13:54
88
Reading Documents
08:36
89
Updating Documents
10:52
90
Deleting Documents
04:10
91
Modelling the Tours
18:14
92
Importing Development Data
15:41
93
Making the API Better: Filtering
18:46
94
Making the API Better: Advanced Filtering
12:05
95
Making the API Better: Sorting
11:01
96
Making the API Better: Limiting Fields
06:20
97
Making the API Better: Pagination
15:00
98
Making the API Better: Aliasing
08:57
99
Refactoring API Features
15:39
100
Aggregation Pipeline: Matching and Grouping
20:38
101
Aggregation Pipeline: Unwinding and Projecting
19:29
102
Virtual Properties
06:24
103
Document Middleware
14:30
104
Query Middleware
13:55
105
Aggregation Middleware
07:43
106
Data Validation: Built-In Validators
10:07
107
Data Validation: Custom Validators
14:03
108
Section Intro
00:42
109
Debugging Node.js with ndb
20:30
110
Handling Unhandled Routes
07:51
111
An Overview of Error Handling
03:37
112
Implementing a Global Error Handling Middleware
09:00
113
Better Errors and Refactoring
11:14
114
Catching Errors in Async Functions
14:55
115
Adding 404 Not Found Errors
09:07
116
Errors During Development vs Production
10:31
117
Handling Invalid Database IDs
09:43
118
Handling Duplicate Database Fields
06:05
119
Handling Mongoose Validation Errors
08:25
120
Errors Outside Express: Unhandled Rejections
08:50
121
Catching Uncaught Exceptions
09:17
122
Section Intro
00:59
123
Modelling Users
10:01
124
Creating New Users
11:20
125
Managing Passwords
18:25
126
How Authentication with JWT Works
08:47
127
Signing up Users
16:02
128
Logging in Users
26:36
129
Protecting Tour Routes - Part 1
14:58
130
Protecting Tour Routes - Part 2
35:15
131
Advanced Postman Setup
11:36
132
Authorization: User Roles and Permissions
15:55
133
Password Reset Functionality: Reset Token
17:04
134
Sending Emails with Nodemailer
23:05
135
Password Reset Functionality: Setting New Password
21:34
136
Updating the Current User: Password
16:37
137
Updating the Current User: Data
20:12
138
Deleting the Current User
10:29
139
Security Best Practices
10:14
140
Sending JWT via Cookie
09:47
141
Implementing Rate Limiting
07:05
142
Setting Security HTTP Headers
05:20
143
Data Sanitization
09:16
144
Preventing Parameter Pollution
08:21
145
Section Intro
01:03
146
MongoDB Data Modelling
24:40
147
Designing Our Data Model
10:58
148
Modelling Locations (Geospatial Data)
12:26
149
Modelling Tour Guides: Embedding
07:49
150
Modelling Tour Guides: Child Referencing
04:57
151
Populating Tour Guides
10:43
152
Modelling Reviews: Parent Referencing
08:32
153
Creating and Getting Reviews
17:04
154
Populating Reviews
06:07
155
Virtual Populate: Tours and Reviews
12:03
156
Implementing Simple Nested Routes
13:30
157
Nested Routes with Express
08:01
158
Adding a Nested GET Endpoint
05:07
159
Building Handler Factory Functions: Delete
14:22
160
Factory Functions: Update and Create
13:23
161
Factory Functions: Reading
14:43
162
Adding a /me Endpoint
04:43
163
Adding Missing Authentication and Authorization
14:45
164
Importing Review and User Data
07:27
165
Improving Read Performance with Indexes
16:12
166
Calculating Average Rating on Tours - Part 1
22:26
167
Calculating Average Rating on Tours - Part 2
15:58
168
Preventing Duplicate Reviews
09:30
169
Geospatial Queries: Finding Tours Within Radius
29:54
170
Geospatial Aggregation: Calculating Distances
16:29
171
Creating API Documentation Using Postman
10:38
172
Section Intro
00:57
173
Recap: Server-Side vs Client-Side Rendering
05:17
174
Setting up Pug in Express
10:09
175
First Steps with Pug
14:38
176
Creating Our Base Template
15:25
177
Including Files into Pug Templates
04:46
178
Extending Our Base Template with Blocks
10:07
179
Setting up the Project Structure
05:58
180
Building the Tour Overview - Part 1
11:38
181
Building the Tour Overview - Part 2
15:54
182
Building the Tour Page - Part 1
20:29
183
Building the Tour Page - Part 2
25:51
184
Including a Map with Mapbox - Part 1
11:34
185
Including a Map with Mapbox - Part 2
27:52
186
Building the Login Screen
06:31
187
Logging in Users with Our API - Part 1
20:54
188
Logging in Users with Our API - Part 2
18:40
189
Logging in Users with Our API - Part 3
28:16
190
Logging out Users
13:57
191
Rendering Error Pages
21:46
192
Building the User Account Page
16:06
193
Updating User Data
17:08
194
Updating User Data with Our API
12:35
195
Updating User Password with Our API
14:43
196
Section Intro
00:33
197
Image Uploads Using Multer: Users
10:13
198
Configuring Multer
13:47
199
Saving Image Name to Database
05:33
200
Resizing Images
13:20
201
Adding Image Uploads to Form
11:34
202
Uploading Multiple Images: Tours
12:03
203
Processing Multiple Images
18:12
204
Building a Complex Email Handler
19:59
205
Email Templates with Pug: Welcome Emails
15:09
206
Sending Password Reset Emails
07:08
207
Using Sendgrid for "Real" Emails
09:33
208
Credit Card Payments with Stripe
10:09
209
Integrating Stripe into the Back-End
22:35
210
Processing Payments on the Front-End
23:05
211
Modelling the Bookings
06:24
212
Creating New Bookings on Checkout Success
19:09
213
Rendering a User's Booked Tours
11:17
214
Finishing the Bookings API
07:13
215
Final Considerations
07:29
216
Section Intro
00:41
217
Setting Up Git and GitHub
04:39
218
Git Fundamentals
10:34
219
Pushing to GitHub
10:29
220
Preparing Our App for Deployment
10:56
221
Deploying Our App to Heroku
26:31
222
Testing for Secure HTTPS Connections
05:53
223
Responding to a SIGTERM Signal
07:22
224
Implementing CORS
15:54
225
Finishing Payments with Stripe Webhooks
38:09
226
Where to Go from Here
03:40
Unlock unlimited learning

Get instant access to all 225 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription