Node.js, Express, MongoDB & More: The Complete Bootcamp
-
Welcome, Welcome, Welcome!
-
Introduction to Node.js and NPMSection Intro0sWhat Is Node.js and Why Use It?0sRunning Javascript Outside the Browser0sUsing Modules 1: Core Modules0sReading and Writing Files0sBlocking and Non-Blocking: Asynchronous Nature of Node.js0sReading and Writing Files Asynchronously0sCreating a Simple Web Server0sRouting0sBuilding a (Very) Simple API0sHTML Templating: Building the Templates0sHTML Templating: Filling the Templates0sParsing Variables from URLs0sUsing Modules 2: Our Own Modules0sIntroduction to NPM and the package.json File0sTypes of Packages and Installs0sUsing Modules 3: 3rd Party Modules0sPackage Versioning and Updating0sSetting up Prettier in VS Code0sRecap and What’s Next0s
-
Introduction to Back-End Web Development
-
How Node.js Works: A Look Behind the ScenesSection Intro0sNode, V8, Libuv and C++0sProcesses, Threads and the Thread Pool0sThe Node.js Event Loop0sThe Event Loop in Practice0sEvents and Event-Driven Architecture0sEvents in Practice0sIntroduction to Streams0sStreams in Practice0sHow Requiring Modules Really Works0sRequiring Modules in Practice0s
-
[Optional] Asynchronous JavaScript: Promises and Async/Await
-
Express: Let’s Start Building the Natours API!Section Intro0sWhat is Express?0sInstalling Postman0sSetting up Express and Basic Routing0sAPIs and RESTful API Design0sStarting Our API: Handling GET Requests0sHandling POST Requests0sResponding to URL Parameters0sHandling PATCH Requests0sHandling DELETE Requests0sRefactoring Our Routes0sMiddleware and the Request-Response Cycle0sCreating Our Own Middleware0sUsing 3rd-Party Middleware0sImplementing the “Users” Routes0sCreating and Mounting Multiple Routers0sA Better File Structure0sParam Middleware0sChaining Multiple Middleware Functions0sServing Static Files0sEnvironment Variables0sSetting up ESLint + Prettier in VS Code0s
-
Introduction to MongoDBSection Intro0sWhat is MongoDB?0sNo Need to Install MongoDB Locally[OPTIONAL] Installing MongoDB on macOS0s[OPTIONAL] Installing MongoDB on Windows0s[OPTIONAL] Creating a Local Database0s[OPTIONAL] CRUD: Creating Documents0s[OPTIONAL] CRUD: Querying (Reading) Documents0s[OPTIONAL] CRUD: Updating Documents0s[OPTIONAL] CRUD: Deleting Documents0sUsing Compass App for CRUD Operations0sCreating a Hosted Database with Atlas0sConnecting to Our Hosted Database0s
-
Using MongoDB with MongooseSection Intro0sConnecting Our Database with the Express App0sWhat Is Mongoose?0sCreating a Simple Tour Model0sCreating Documents and Testing the Model0sIntro to Back-End Architecture: MVC, Types of Logic, and More0sRefactoring for MVC0sAnother Way of Creating Documents0sReading Documents0sUpdating Documents0sDeleting Documents0sModelling the Tours0sImporting Development Data0sMaking the API Better: Filtering0sMaking the API Better: Advanced Filtering0sMaking the API Better: Sorting0sMaking the API Better: Limiting Fields0sMaking the API Better: Pagination0sMaking the API Better: Aliasing0sRefactoring API Features0sAggregation Pipeline: Matching and Grouping0sAggregation Pipeline: Unwinding and Projecting0sVirtual Properties0sDocument Middleware0sQuery Middleware0sAggregation Middleware0sData Validation: Built-In Validators0sData Validation: Custom Validators0s
-
Error Handling with ExpressSection Intro0sDebugging Node.js with ndb0sHandling Unhandled Routes0sAn Overview of Error Handling0sImplementing a Global Error Handling Middleware0sBetter Errors and Refactoring0sCatching Errors in Async Functions0sAdding 404 Not Found Errors0sErrors During Development vs Production0sHandling Invalid Database IDs0sHandling Duplicate Database Fields0sHandling Mongoose Validation Errors0sErrors Outside Express: Unhandled Rejections0sCatching Uncaught Exceptions0s
-
Authentication, Authorization and SecuritySection Intro0sModelling Users0sCreating New Users0sManaging Passwords0sHow Authentication with JWT Works0sSigning up Users0sLogging in Users0sProtecting Tour Routes – Part 10sProtecting Tour Routes – Part 20sAdvanced Postman Setup0sAuthorization: User Roles and Permissions0sPassword Reset Functionality: Reset Token0sSending Emails with Nodemailer0sPassword Reset Functionality: Setting New Password0sUpdating the Current User: Password0sUpdating the Current User: Data0sDeleting the Current User0sSecurity Best Practices0sSending JWT via Cookie0sImplementing Rate Limiting0sSetting Security HTTP Headers0sData Sanitization0sPreventing Parameter Pollution0s
-
Modelling Data and Advanced MongooseSection Intro0sMongoDB Data Modelling0sDesigning Our Data Model0sModelling Locations (Geospatial Data)0sModelling Tour Guides: Embedding0sModelling Tour Guides: Child Referencing0sPopulating Tour Guides0sModelling Reviews: Parent Referencing0sCreating and Getting Reviews0sPopulating Reviews0sVirtual Populate: Tours and Reviews0sImplementing Simple Nested Routes0sNested Routes with Express0sAdding a Nested GET Endpoint0sBuilding Handler Factory Functions: Delete0sFactory Functions: Update and Create0sFactory Functions: Reading0sAdding a /me Endpoint0sAdding Missing Authentication and Authorization0sImporting Review and User Data0sImproving Read Performance with Indexes0sCalculating Average Rating on Tours – Part 10sCalculating Average Rating on Tours – Part 20sPreventing Duplicate Reviews0sGeospatial Queries: Finding Tours Within Radius0sGeospatial Aggregation: Calculating Distances0sCreating API Documentation Using Postman0s
-
Server-Side Rendering with Pug TemplatesSection Intro0sRecap: Server-Side vs Client-Side Rendering0sSetting up Pug in Express0sFirst Steps with Pug0sCreating Our Base Template0sIncluding Files into Pug Templates0sExtending Our Base Template with Blocks0sSetting up the Project Structure0sBuilding the Tour Overview – Part 10sBuilding the Tour Overview – Part 20sBuilding the Tour Page – Part 10sBuilding the Tour Page – Part 20sIncluding a Map with Mapbox – Part 10sIncluding a Map with Mapbox – Part 20sBuilding the Login Screen0sLogging in Users with Our API – Part 10sLogging in Users with Our API – Part 20sLogging in Users with Our API – Part 30sLogging out Users0sRendering Error Pages0sBuilding the User Account Page0sUpdating User Data0sUpdating User Data with Our API0sUpdating User Password with Our API0s
-
Advanced Features: Payments, Email, File UploadsSection Intro0sImage Uploads Using Multer: Users0sConfiguring Multer0sSaving Image Name to Database0sResizing Images0sAdding Image Uploads to Form0sUploading Multiple Images: Tours0sProcessing Multiple Images0sBuilding a Complex Email Handler0sEmail Templates with Pug: Welcome Emails0sSending Password Reset Emails0sUsing Sendgrid for “Real” Emails0sCredit Card Payments with Stripe0sIntegrating Stripe into the Back-End0sProcessing Payments on the Front-End0sModelling the Bookings0sCreating New Bookings on Checkout Success0sRendering a User’s Booked Tours0sFinishing the Bookings API0sFinal Considerations0s
-
Setting Up Git and Deployment
-
That’s It, Everyone!
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.
(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 your 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 sounds 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 more 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;
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.
And now, I hope to welcome you as a new student in my course! So click that “Enroll” button right now, and join me in this adventure today!
But if you’re not 100% sure yet, just go ahead and watch the promo video to take a look at the course project. I promise you will be amazed 🙂
See you in the course!
What's included
- 42 hours on-demand video
- 3 articles
- Access on mobile and TV
- Certificate of completion