Node.js, Express, MongoDB & More The Complete Bootcamp 2023
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.
More
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.
(Actually, if you feel like exploring the project, you can do so at www.natours.dev. And this is only a small part of the project! Log in with "laura@example.com" and password "test1234")
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!
Why should you learn Node.js and take this course?
If you want to learn Node.js and modern back-end development, then there is no doubt that this course is for you!
It's the biggest Node.js course on the internet, it has by far the most complete course project, and offers the most in-depth explanations of all topics included.
And even if you already know some Node.js, you should still take this course, because it contains subjects that are not covered anywhere else, or not in the same depth!
But maybe you're not yet convinced that Node.js really is the right technology for you to learn right now?
Well, first, Node.js will allow you to use your JavaScript skills to build applications on the back-end. That itself is a huge gain, which makes your full-stack development process so much easier and faster.
Plus, popularity and opportunities for Node.js are off the charts. It's a modern, proven and reliable technology, used by tech giants (and 6-figure-salary-paying-companies) like Netflix, PayPal, Uber, and many more.
Node.js really is what you should invest your time in, instead of outdated technology like PHP.
In summary, if you already know JavaScript, learning Node is the logical next step for you! It will make you a better, more versatile and complete developer, which will ultimately boost your opportunities in the job market!
And I created this course to help you do exactly that! It really is the course I wish I had when I was first learning back-end development with Node.js and all related technologies.
And this is what you get by signing up today:
Lifetime access to 40+ hours of HD quality videos. No monthly subscription. Learn at your own pace, whenever you want;
All videos are downloadable. Learn wherever you want, even without an internet connection!
Friendly and fast support in the course Q&A whenever you have questions or get stuck;
English closed captions (not the auto-generated ones provided by Udemy);
Course slides in PDF format;
Downloadable assets, starter code and final code for each section;
Lots of small challenges are included in the videos so you can track your progress.
- Absolutely NO understanding of Node or back-end development is required! I take you from beginner to advanced developer!
- Basic understanding of JavaScript is required (the course contains a section about asynchronous JavaScript with promises and async/await in case you need to get up to speed)
- Basic understanding of HTML is a plus (only for final part of the course), but NOT a must
- Any computer and OS will work — Windows, macOS or Linux
Who this course is for:
- Take this course if you want to build amazingly fast and scalable back-end applications using the JavaScript skills you already have. Node is the perfect tool for you!
- Take this course if you're a front-end developer looking to go into back-end development using the most complete course on the market.
- Take this course if you have taken other Node courses but: 1) still don't feel confident to code real-world apps, or 2) still feel like you need more back-end skills. This course is perfect for you!
- Take this course if you're an experienced Node developer who wants to add new skills missing in other courses: How Node works behind the scenes, advanced data modelling, geospatial data, complete and secure authentication, stripe payments, and more.
What you'll learn:
- Master the entire modern back-end stack: Node, Express, MongoDB and Mongoose (MongoDB JS driver)
- Build a complete, beautiful & real-world application from start to finish (API and server-side rendered website)
- Build a fast, scalable, feature-rich RESTful API (includes filters, sorts, pagination, and much more)
- Learn how Node really works behind the scenes: event loop, blocking vs non-blocking code, streams, modules, etc.
- CRUD operations with MongoDB and Mongoose
- Deep dive into mongoose (including all advanced features)
- How to work with data in NoSQL databases (including geospatial data)
- Advanced authentication and authorization (including password reset)
- Security: encryption, sanitization, rate limiting, etc.
- Server-side website rendering with Pug templates
- Credit card payments with Stripe
- Sending emails & uploading files
- Deploy the final application to production (including a Git crash-course)
- Downloadable videos, code and design assets for projects
Watch Online Node.js, Express, MongoDB & More The Complete Bootcamp 2023
# | Title | Duration |
---|---|---|
1 | Course Structure and Projects | 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:39 |
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:50 |
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:53 |
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:08 |
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:53 |
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 |