NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL) 

  • Offered byUDEMY

NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)


41 hours

Total fee


Mode of learning


Difficulty level




NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)

  • Compatible on Mobile and TV
  • Earn a certificate on successful completion
  • Get Full Lifetime Access
  • Course Instructor
Read more
Details Icon

NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)
Course details

Who should do this course?
  • Beginner or advanced web developers who want to dive into backend (server-side) development with NodeJS
  • Everyone who's interested in building modern, scalable and high-performing web applications
  • Experienced NodeJS developers who want to dive into specific features like using GraphQL with NodeJS
What are the course deliverables?
  • Work with one of the most in-demand web development programming languages
  • Build modern, fast and scalable server-side web applications with NodeJS, databases like SQL or MongoDB and more
  • Understand the NodeJS ecosystem and build server-side rendered apps, REST APIs and GraphQL APIs
More about this course
  • Join the most comprehensive Node. Js course on Udemy and learn Node in both a practical as well as theory-based way! Node. Js is probably THE most popular and modern server-side programming language you can dive into these days! Node. Js developers are in high demand and the language is used for everything from traditional web apps with server-side rendered views over REST APIs all the way up to GraphQL APIs and real-time web services . Not to mention its applications in build workflows for projects of all sizes. This course will teach you all of that! From scratch with zero prior knowledge assumed. Though if you do bring some knowledge, you'll of course be able to quickly jump into the course modules that are most interesting to you.

NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)




What is Node.js?

Installing Node.js and Creating our First App

Join our Online Learning Community

Installing Node.js and Creating our First App

Understanding the Role & Usage of Node.js

Course Outline

How To Get The Most Out Of The Course

Working with the REPL vs Using FIles

Working with the REPL vs Using FIles

Using the Attached Source Code

Optional: JavaScript - A Quick Refresher

Module Introduction

JavaScript in a Nutshell

Refreshing the Core Syntax

let & const

Understanding Arrow Functions

Working with Objects, Properties & Methods

Arrays & Array Methods

Arrays, Objects & Reference Types

Understanding Spread & Rest Operators


Async Code & Promises

Template Literals

Wrap Up

Useful Resources & Links

Understanding the Basics

Module Introduction

How The Web Works

Creating a Node Server

The Node Lifecycle & Event Loop

Controlling the Node.js Process

Understanding Requests

Sending Responses

Request & Response Headers

Routing Requests

Redirecting Requests

Parsing Request Bodies

Understanding Event Driven Code Execution

Understanding Event Driven Code Execution

Blocking and Non-Blocking Code

Node.js - Looking Behind the Scenes

Using the Node Modules System

Wrap Up

[OPTIONAL] Assignment Solution

Useful Resources & Links

Improved Development Workflow and Debugging

Module Introduction

Understanding NPM Scripts

Installing 3rd Party Packages

Global Features vs Core Modules vs Third-Party Modules

Using Nodemon for Autorestarts

Global & Local npm Packages

Understanding different Error Types

Finding & Fixing Syntax Errors

Dealing with Runtime Errors

Logical Errors

Using the Debugger

Restarting the Debugger Automatically After Editing our App

Debugging Node.js in Visual Studio Code

Changing Variables in the Debug Console

Wrap Up

Useful Resources & Links

Working with Express.js

Module Introduction

What is Express.js?

Installing Express.js

Adding Middleware

How Middleware Works

Express.js - Looking Behind the Scenes

Handling Different Routes

[OPTIONAL] Assignment Solution

Parsing Incoming Requests

Limiting Middleware Execution to POST Requests

Using Express Router

Adding a 404 Error Page

Filtering Paths

Creating HTML Pages

Serving HTML Pages

Returning a 404 Page

Using a Helper Function for Navigation

Styling our Pages

Serving Files Statically

[OPTIONAL] Assignment Solution

Wrap Up

Useful Resources & Links

Working with Dynamic Content & Adding Templating Engines

Module Introduction

Sharing Data Across Requests & Users

Templating Engines - An Overview

Installing & Implementing Pug

Outputting Dynamic Content

Official Pug Docs

Converting HTML Files to Pug

Adding a Layout

Finishing the Pug Template

Avoiding an Error

Working with Handlebars

Converting our Project to Handlebars

Adding the Layout to Handlebars

Working with EJS

Working on the Layout with Partials

Wrap Up

[OPTIONAL] Assignment Solution

Useful Resources & Links

The Model View Controller (MVC)

Module Introduction

What is the MVC?

Adding Controllers

Finishing the Controllers

Adding a Product Model

Storing Data in Files Via the Model

Fetching Data from Files Via the Model

Refactoring the File Storage Code

Wrap Up

Useful Resources & Links

Optional: Enhancing the App

Module Introduction

Creating the Shop Structure

Working on the Navigation

Registering the Routes

Storing Product Data

Displaying Product Data

Editing & Deleting Products

Adding Another Item

Useful Resources & Links

Dynamic Routes & Advanced Models

Module Introduction


Applied Changes

Adding the Product ID to the Path

Extracting Dynamic Params

Loading Product Detail Data

Rendering the Product Detail View

Passing Data with POST Requests

Adding a Cart Model

Using Query Params

Pre-Populating the Edit Product Page with Data

Linking to the Edit Page

Editing the Product Data

Adding the Product-Delete Functionality

Deleting Cart Items

Displaying Cart Items on the Cart Page

Deleting Cart Items

Fixing a Delete Product Bug

Wrap Up

Useful Resources & Links

SQL Introduction

Module Introduction

Choosing a Database

NoSQL Introduction

Comparing SQL and NoSQL

Setting Up MySQL

Connecting our App to the SQL Database

Basic SQL & Creating a Table

Retrieving Data

Fetching Products

Fetching Products - Time to Practice

Inserting Data Into the Database

Fetching a Single Product with the "where" Condition

Wrap Up

Useful Resources & Links

Understanding Sequelize

Module Introduction

What is Sequelize?

Connecting to the Database

Defining a Model

Syncing JS Definitions to the Database

Inserting Data & Creating a Product

MUST READ: findById() in Sequelize 5

Retrieving Data & Finding Products

Getting a Single Product with the "where" Condition

Fetching Admin Products

Updating Products

Deleting Products

Creating a User Model

Adding a One-To-Many Relationship

Creating & Managing a Dummy User

Using Magic Association Methods

Fetching Related Products

One-To-Many & Many-To-Many Relations

Creating & Fetching a Cart

Adding New Products to the Cart

Adding Existing Products & Retrieving Cart Items

Deleting Related Items & Deleting Cart Products

Adding an Order Model

Storing Cartitems as Orderitems

Resetting the Cart & Fetching and Outputting Orders

Wrap Up

Useful Resources & Links

Working with NoSQL & Using MongoDB

Module Introduction

What is MongoDB?

Relations in NoSQL

Setting Up MongoDB

Installing the MongoDB Driver

Creating the Database Connection

Finishing the Database Connection

Using the Database Connection

Creating Products

Understanding the MongoDB Compass

Fetching All Products

Fetching a Single Product

Making the "Edit" & "Delete" Buttons Work Again

Working on the Product Model to Edit our Product

Finishing the "Update Product" Code

One Note About Updating Products

Deleting Products

Fixing the "Add Product" Functionality

Creating New Users

Storing the User in our Database

Working on Cart Items & Orders

Adding the "Add to Cart" Functionality

Storing Multiple Products in the Cart

Displaying the Cart Items

Fixing a Bug

Deleting Cart Items

Adding an Order

Adding Relational Order Data

Getting Orders

Removing Deleted Items From the Cart

Wrap Up

Useful Resources & Links

Two Adjustments (behind the scenes)

Working with Mongoose

Module Introduction

What is Mongoose?

Connecting to the MongoDB Server with Mongoose

Creating the Product Schema

Saving Data Through Mongoose

Fetching All Products

Fetching a Single Product

Updating Products

Deleting Products

Adding and Using a User Model

Using Relations in Mongoose

One Important Thing About Fetching Relations

Working on the Shopping Cart

Loading the Cart

Deleting Cart Items

Creating & Getting Orders

Storing All Order Related Data

Clearing the Cart After Storing an Order

Getting & Displaying the Orders

Wrap Up

Useful Resources & Links

Sessions & Cookies

Module Introduction

What is a Cookie?

The Current Project Status

Optional: Creating the Login Form

Adding the Request Driven Login Solution

Setting a Cookie

Manipulating Cookies

Configuring Cookies

What is a Session?

Initializing the Session Middleware

Using the Session Middleware

Using MongoDB to Store Sessions

Sessions & Cookies - A Short Summary

[OPTIONAL] Assignment Solution

Deleting a Cookie

Fixing Some Minor Bugs

Making "Add to Cart" Work Again

Two Tiny Improvements

Wrap Up

Code Adjustments

Code Adjustments

Useful Resources & Links

Adding Authentication

Module Introduction

What is Authentication?

How is Authentication Implemented?

Our Updated Project Status

Implementing an Authentication Flow

Encrypting Passwords

Adding a Tiny Code Improvement

Adding the Signin Functionality

Working on Route Protection

Using Middleware to Protect Routes

Understanding CSRF Attacks

Using a CSRF Token

Adding CSRF Protection

Fixing the Order Button

Providing User Feedback

Optional: Styling Error Messages

Finishing the Flash Messages

Adding Additional Flash Messages

Wrap Up

Useful Resources & Links

Sending Emails

Module Introduction

How Does Sending Emails Work?

Using SendGrid

Using Nodemailer to Send an Email

Potential Limitation for Large Scale Apps

Useful Resources & Links

Advanced Authentication

Module Introduction

Resetting Passwords

Implementing the Token Logic

Creating the Token

Creating the Reset Password Form

Adding Logic to Update the Password

Why we Need Authorization

Adding Authorization

Adding Protection to Post Actions

Why Editing Fails

Wrap Up

Useful Resources & Links

Understanding Validation

Module Introduction

Why Should We Use Validation?

How to Validate Input?

Setup & Basic Validation

Using Validation Error Messages

Built-In & Custom Validators

More Validators

Checking For Field Equality

Adding Async Validation

[OPTIONAL] Assignment Solution

Keeping User Input

Adding Conditional CSS Classes

Adding Validation to Login

Sanitizing Data

Validating Product Addition

Validating Product Editing

Wrap Up

Useful Resources & Links

Error Handling

Module Introduction

Types of Errors & Error Handling

Analyzing the Error Handling in the Current Project

Errors - Some Theory

Throwing Errors in Code

Returning Error Pages

Using the Express.js Error Handling Middleware

Updating the App

Using the Error Handling Middleware Correctly

Status Codes

Available Status Codes

Wrap Up

Useful Resources & Links

File Upload & Download

Module Introduction

Adding a File Picker to the Frontend

Handling Multipart Form Data

Handling File Uploads with Multer

Configuring Multer to Adjust Filename & Filepath

Filtering Files by Mimetype

Storing File Data in the Database

Remove imageUrl from "Add Product"

Serving Images Statically

Downloading Files with Authentication

Setting File Type Headers

Restricting File Access

Streaming Data vs Preloading Data

Using PDFKit for .pdf Generation

Generating .pdf Files with Order Data

Deleting Files

Fixing Invoice Links

Wrap Up

Useful Resources & Links

Adding Pagination

Module Introduction

Adding Pagination Links

Retrieving a Chunk of Data

Skip & Limit with SQL

Preparing Pagination Data on the Server

Adding Dynamic Pagination Buttons

Re-Using the Pagination Logic & Controls

Wrap Up

Useful Resources & Links

Understanding Async Requests

Module Introduction

What are Async Requests?

Adding Client Side JS Code

The JSON Data Format

Sending & Handling Background Requests

Manipulating the DOM

Useful Resources & Links

Adding Payments

Module Introduction

How Payments Work

Adding a Checkout Page

Differing Stripe Integration

Using Stripe in Your App

Migrating Stripe Implementation

Useful Resources & Links

Working with REST APIs - The Basics

Module Introduction

What are REST APIs and why do we use Them?

Accessing Data with REST APIs

Understanding Routing & HTTP Methods

REST APIs - The Core Principles

Creating our REST API Project & Implementing the Route Setup

Sending Requests & Responses and Working with Postman

REST APIs, Clients & CORS Errors

Sending POST Requests

Wrap Up

Useful Resources & Links

Working with REST APIs - The Practical Application

Module Introduction

REST APIs & The Rest Of The Course

Understanding the Frontend Setup

Planning the API

Fetching Lists of Posts

Adding a Create Post Endpoint

Adding Server Side Validation

Setting Up a Post Model

Storing Posts in the Database

Static Images & Error Handling

Fetching a Single Post

Image Names & Windows

Uploading Images

Updating Posts

Deleting Posts

Adding Pagination

Adding a User Model

Adding User Signup Validation

Signing Users Up

How Does Authentication Work?

Starting with User Login

Logging In & Creating JSON Web Tokens (JWTs)

Using & Validating the Token

Adding Auth Middleware to All Routes

Connecting Posts & Users

Adding Authorization Checks

Clearing Post-User Relations

[OPTIONAL] Assignment Solution

Wrap Up

Useful Resources & Links

Understanding Async Await in Node.js

Module Introduction

What is Async Await All About?

Transforming "Then Catch" to "Async Await"

[OPTIONAL] Assignment Solution

The User Name is Missing!

Wrap Up

Useful Resources & Links

Understanding Websockets & Socket.io

Module Introduction

What Are Websockets & Why Would You Use Them?

Websocket Solutions - An Overview

Setting Up Socket.io on the Server

Establishing a Connection From the Client

Identifying Realtime Potential

Sharing the IO Instance Across Files

Synchronizing POST Additions

Fixing a Bug - The Missing Username

Updating Posts On All Connected Clients

Sorting Correctly

Deleting Posts Across Clients

Wrap Up

Useful Resources & Links

Working with GraphQL

Module Introduction

What is GraphQL?

Understanding the Setup & Writing our First Query

Defining a Mutation Schema

Adding a Mutation Resolver & GraphiQL

Adding Input Validation

Handling Errors

Connecting the Frontend to the GraphQL API

Adding a Login Query & a Resolver

Adding Login Functionality

Adding a Create Post Mutation

Extracting User Data From the Auth Token

Sending the "Create Post" Query

Fixing a Bug & Adding New Posts Correctly

Adding a "Get Post" Query & Resolver

Sending "Create Post" and "Get Post" Queries

Adding Pagination

Uploading Images

Fetching the imageUrl

Viewing a Single Post

Updating Posts

Deleting Posts

Adding Posts & Pagination

Managing the User Status

Using Variables

Fixing a Pagination Bug

Wrap Up

Useful Resources & Links

Deploying our App

Module Introduction

Deploying Different Kinds of Apps

Deployment Preparations

Using Environment Variables

Using Production API Keys

Setting Secure Response Headers with Helmet

Compressing Assets

Setting Up Request Logging

More on Logging

Setting Up a SSL Server

Using a Hosting Provider

Understanding the Project & the Git Setup

A Deployment Example with Heroku

Storing User-generated Files on Heroku

Deploying APIs

Useful Resources & Links

Testing Node.js Applications

Module Introduction

What is Testing?

Why & How?

Setup and Writing a First Test

Testing the Auth Middleware

Organizing Multiple Tests

What Not To Test!

Using Stubs

Testing Controllers

Testing Asynchronous Code

Setting up a Testing Database

Testing Code With An Active Database

Cleaning Up


Testing Code That Requires Authentication

Wrap Up & Mastering Tests

Useful Resources & Links

Node.js as a Build Tool & Using npm

Module Introduction

npm & Node.js

Using npm

Versioning in package.json

What is a Build Tool?

Using Node.js in Build Processes

Useful Resources & Links


Course Roundup

Course Slides

Bonus: More Content!

Other courses offered by UDEMY

– / –
– / –
– / –
– / –
– / –
View Other 2339 CoursesRight Arrow Icon

NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)
Students Ratings & Reviews

Verified Icon12 Ratings
Estkhar Ansari
NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)
Learning Experience: The above course is really very helpful and effective for the beginners. This udemy course covers all the corners of the Nodejs. I have learnt a lot from this course. Now I am able to get a job
Faculty: Faculty is very helpful, He has a very good way of understanding. Good quality of lecture I get easily course resources and course material
Course Support: This course gave me an opportunity to learn NodeJs which I could take up a job.
Reviewed on 16 Dec 2022Read More
Thumbs Up IconThumbs Down Icon
Joshua Johnson
NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)
Learning Experience: Superb Course by Maximillian
Faculty: Very Well Explained By Maximillian . Teaching Assitance are also Superb they will reply fast as they can when we ask about any of Doubts Superb course by Maximillian it Covers Almost Each and Every Section of NodeJs . We can ask Doubt at any Time the Teaching Assistance will Reply fast . Well Explained by Max . It Also Touches GraphQl, TypeScript, Deno and JavaScript ES6 . But Some Lectures are Outdated Especially when talk about Third Party API's . But Overall Its a Well Defined Course You will Became Noob to Pro in NodeJs Especially in Rest API's
Course Support: Very Well
Reviewed on 28 Nov 2022Read More
Thumbs Up IconThumbs Down Icon
Piyush Garg
NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)
Other: It was a great course on Udemy. Got basic idea of Nodejs fro this course.
Reviewed on 16 Aug 2021Read More
Thumbs Up IconThumbs Down Icon
Pradeep Kumar
NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)
Other: I watched many different courses on node js but didnt get it well. So, i take this course for fresh start in node js again and what !! i learnt lot of things which are well explained by Sir Max . Thank U sir for this wonderfull course
Reviewed on 10 Dec 2020Read More
Thumbs Up IconThumbs Down Icon
Mayank Kumar Sharma
NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)
Other: This course is used to build REST api (backend) with user, post and its relationships. Used other framework like express, validator, jwt, session, cookies, error handlers, mongooses and features added was super admin, contents, contexts, nevbar, multi pages etc.
Reviewed on 10 Nov 2020Read More
Thumbs Up IconThumbs Down Icon
View All 7 ReviewsRight Arrow Icon

NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)

Student Forum

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