UDEMY
UDEMY Logo

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

  • Offered byUDEMY

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

Duration

6 hours

Total fee

12,800

Mode of learning

Online

Difficulty level

Intermediate

Credential

Certificate

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

  • Compatible on Mobile and TV
  • Earn a certificate on successful completion
  • Get Full Lifetime Access
  • Learn from Jonas Schmedtmann
Read more
Details Icon

Node.js, Express, MongoDB & More: The Complete Bootcamp
 at 
UDEMY 
Course details

Who should do this course?
  • 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 are the course deliverables?
  • 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
Read more
More about this course
  • 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.

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

Welcome, Welcome, Welcome!

Course Structure and Projects

READ BEFORE YOU START!

Let's Install Node.js

Introduction to Node.js and NPM

Section Intro

What Is Node.js and Why Use It?

Running Javascript Outside the Browser

Using Modules 1: Core Modules

Reading and Writing Files

Blocking and Non-Blocking: Asynchronous Nature of Node.js

Reading and Writing Files Asynchronously

Creating a Simple Web Server

Routing

Building a (Very) Simple API

HTML Templating: Building the Templates

HTML Templating: Filling the Templates

Parsing Variables from URLs

Using Modules 2: Our Own Modules

Introduction to NPM and the package.json File

Types of Packages and Installs

Using Modules 3: 3rd Party Modules

Package Versioning and Updating

Setting up Prettier in VS Code

Recap and What's Next

Introduction to Back-End Web Development

Section Intro

An Overview of How the Web Works

HTTP in Action

Front-End vs. Back-End Web Development

Static vs Dynamic vs API

How Node.js Works: A Look Behind the Scenes

Section Intro

Node, V8, Libuv and C++

Processes, Threads and the Thread Pool

The Node.js Event Loop

The Event Loop in Practice

Events and Event-Driven Architecture

Events in Practice

Introduction to Streams

Streams in Practice

How Requiring Modules Really Works

Requiring Modules in Practice

[Optional] Asynchronous JavaScript: Promises and Async/Await

Section Intro

The Problem with Callbacks: Callback Hell

From Callback Hell to Promises

Building Promises

Consuming Promises with Async/Await

Returning Values from Async Functions

Waiting for Multiple Promises Simultaneously

Express: Let's Start Building the Natours API!

Section Intro

What is Express?

Installing Postman

Setting up Express and Basic Routing

APIs and RESTful API Design

Starting Our API: Handling GET Requests

Handling POST Requests

Responding to URL Parameters

Handling PATCH Requests

Handling DELETE Requests

Refactoring Our Routes

Middleware and the Request-Response Cycle

Creating Our Own Middleware

Using 3rd-Party Middleware

Implementing the "Users" Routes

Creating and Mounting Multiple Routers

A Better File Structure

Param Middleware

Chaining Multiple Middleware Functions

Serving Static Files

Environment Variables

Setting up ESLint + Prettier in VS Code

Introduction to MongoDB

Section Intro

What is MongoDB?

Installing MongoDB on macOS

Installing MongoDB on Windows

Creating a Local Database

CRUD: Creating Documents

CRUD: Querying (Reading) Documents

CRUD: Updating Documents

CRUD: Deleting Documents

Using Compass App for CRUD Operations

Creating a Hosted Database with Atlas

Connecting to Our Hosted Database

Using MongoDB with Mongoose

Section Intro

Connecting Our Database with the Express App

What Is Mongoose?

Creating a Simple Tour Model

Creating Documents and Testing the Model

Intro to Back-End Architecture: MVC, Types of Logic, and More

Refactoring for MVC

Another Way of Creating Documents

Reading Documents

Updating Documents

Deleting Documents

Modelling the Tours

Importing Development Data

Making the API Better: Filtering

Making the API Better: Advanced Filtering

Making the API Better: Sorting

Making the API Better: Limiting Fields

Making the API Better: Pagination

Making the API Better: Aliasing

Refactoring API Features

Aggregation Pipeline: Matching and Grouping

Aggregation Pipeline: Unwinding and Projecting

Virtual Properties

Document Middleware

Query Middleware

Aggregation Middleware

Data Validation: Built-In Validators

Data Validation: Custom Validators

Error Handling with Express

Section Intro

Debugging Node.js with ndb

Handling Unhandled Routes

An Overview of Error Handling

Implementing a Global Error Handling Middleware

Better Errors and Refactoring

Catching Errors in Async Functions

Adding 404 Not Found Errors

Errors During Development vs Production

Handling Invalid Database IDs

Handling Duplicate Database Fields

Handling Mongoose Validation Errors

Errors Outside Express: Unhandled Rejections

Catching Uncaught Exceptions

Authentication, Authorization and Security

Section Intro

Modelling Users

Creating New Users

Managing Passwords

How Authentication with JWT Works

Signing up Users

Logging in Users

Protecting Tour Routes - Part 1

Protecting Tour Routes - Part 2

Advanced Postman Setup

Authorization: User Roles and Permissions

Password Reset Functionality: Reset Token

Sending Emails with Nodemailer

Password Reset Functionality: Setting New Password

Updating the Current User: Password

Updating the Current User: Data

Deleting the Current User

Security Best Practices

Sending JWT via Cookie

Implementing Rate Limiting

Setting Security HTTP Headers

Data Sanitization

Preventing Parameter Pollution

Modelling Data and Advanced Mongoose

Section Intro

MongoDB Data Modelling

Designing Our Data Model

Modelling Locations (Geospatial Data)

Modelling Tour Guides: Embedding

Modelling Tour Guides: Child Referencing

Populating Tour Guides

Modelling Reviews: Parent Referencing

Creating and Getting Reviews

Populating Reviews

Virtual Populate: Tours and Reviews

Implementing Simple Nested Routes

Nested Routes with Express

Adding a Nested GET Endpoint

Building Handler Factory Functions: Delete

Factory Functions: Update and Create

Factory Functions: Reading

Adding a /me Endpoint

Adding Missing Authentication and Authorization

Importing Review and User Data

Improving Read Performance with Indexes

Calculating Average Rating on Tours - Part 1

Calculating Average Rating on Tours - Part 2

Preventing Duplicate Reviews

Geospatial Queries: Finding Tours Within Radius

Geospatial Aggregation: Calculating Distances

Creating API Documentation Using Postman

Server-Side Rendering with Pug Templates

Section Intro

Recap: Server-Side vs Client-Side Rendering

Setting up Pug in Express

First Steps with Pug

Creating Our Base Template

Including Files into Pug Templates

Extending Our Base Template with Blocks

Setting up the Project Structure

Building the Tour Overview - Part 1

Building the Tour Overview - Part 2

Building the Tour Page - Part 1

Building the Tour Page - Part 2

Including a Map with Mapbox - Part 1

Including a Map with Mapbox - Part 2

Building the Login Screen

Logging in Users with Our API - Part 1

Logging in Users with Our API - Part 2

Logging in Users with Our API - Part 3

Logging out Users

Rendering Error Pages

Building the User Account Page

Updating User Data

Updating User Data with Our API

Updating User Password with Our API

Advanced Features: Payments, Email, File Uploads

Section Intro

Image Uploads Using Multer: Users

Configuring Multer

Saving Image Name to Database

Resizing Images

Adding Image Uploads to Form

Uploading Multiple Images: Tours

Processing Multiple Images

Building a Complex Email Handler

Email Templates with Pug: Welcome Emails

Sending Password Reset Emails

Using Sendgrid for "Real" Emails

Credit Card Payments with Stripe

Integrating Stripe into the Back-End

Processing Payments on the Front-End

Modelling the Bookings

Creating New Bookings on Checkout Success

Rendering a User's Booked Tours

Finishing the Bookings API

Final Considerations

Setting Up Git and Deployment

Section Intro

Setting Up Git and GitHub

Git Fundamentals

Pushing to GitHub

Preparing Our App for Deployment

Deploying Our App to Heroku

Testing for Secure HTTPS Connections

Responding to a SIGTERM Signal

Implementing CORS

Finishing Payments with Stripe Webhooks

That's It, Everyone!

Where to Go from Here

Other courses offered by UDEMY

549
50 hours
– / –
3 K
10 hours
– / –
549
4 hours
– / –
599
10 hours
– / –
View Other 2346 CoursesRight Arrow Icon

Node.js, Express, MongoDB & More: The Complete Bootcamp
 at 
UDEMY 
Students Ratings & Reviews

4.6/5
Verified Icon5 Ratings
R
Ratna Singh
Node.js, Express, MongoDB & More: The Complete Bootcamp
Offered by UDEMY
5
Learning Experience: Nice course if you want to learn backend node.js.Highly recommended
Faculty: Jonas S.Really nice explaination yes it is latest curriculum
Course Support: No
Reviewed on 26 Aug 2022Read More
Thumbs Up IconThumbs Down Icon
A
Amarnath Vishwakarma
Node.js, Express, MongoDB & More: The Complete Bootcamp
Offered by UDEMY
5
Learning Experience: nice content, great guidance to start from scratch
Faculty: faculty teaching was very good, he has good knowledge the assessment was very good. it was mediu an dhard both
Course Support: Career support was helpful
Reviewed on 9 Jul 2022Read More
Thumbs Up IconThumbs Down Icon
View All 2 ReviewsRight Arrow Icon
qna

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

Student Forum

chatAnything you would want to ask experts?
Write here...