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

Master Node JS, build REST APIs with Node.js, GraphQL APIs, add Authentication, use MongoDB, SQL & much more!

Course Overview

About This Course

You can write JavaScript, but the moment you try to build a real backend, things get messy fast: requests and responses, data storage, logins, file uploads, and “where does all this code even go?” If you’ve been stuck stitching tutorials together, you’re not alone.

In this course, you’ll grow into Node.js step by step, with the theory explained clearly and then immediately applied in realistic code. You’ll see how to structure server-side apps so they stay maintainable as features pile up, and you’ll practice with the same tools and patterns used in production.

By the end, you’ll be able to create fast, scalable server-side applications that handle real users and real data. You’ll ship complete backends with authentication, payments, uploads, testing, and deployment—plus you’ll be ready to branch into newer runtimes when you want to explore beyond Node.

What You'll Learn

You’ll go beyond “hello world” Node.js by building server-rendered apps, REST and GraphQL APIs, and real-time features—connected to SQL (MySQL) and MongoDB backends.

  • Node core mastery

    Work confidently with Node.js core modules to parse incoming requests, send responses, and build server-side logic that doesn’t rely on magic. You’ll understand how the Node.js ecosystem fits together so you can navigate it independently.

  • Express apps with MVC

    Build structured Express.js applications using the Model-View-Controller (MVC) pattern, so routes, controllers, and data logic stay clean as your project grows. You’ll render HTML dynamically on the server for classic web app workflows.

  • Database-backed backends

    Connect Node.js to SQL using MySQL + Sequelize, and to NoSQL using MongoDB + Mongoose. You’ll model data, run queries, and choose the right approach for different application needs.

  • Auth, sessions, validation

    Implement sessions and cookies, plus user authentication and authorization flows that protect routes and data. You’ll validate user input, send e-mails, and add pagination so your apps behave like real products.

  • APIs: REST and GraphQL

    Create production-style REST APIs and GraphQL APIs, including authentication and file upload in both approaches. You’ll understand how to design endpoints and schemas so clients can consume your backend reliably.

  • Testing, payments, deployment

    Add automated unit tests, integrate payments with Stripe.js, and deploy a Node.js application. You’ll also use TypeScript with Node.js and get a thorough introduction to Deno.js to broaden your server-side toolkit.

Ready to get started?

See enrollment options

Prerequisites

  • Basic JavaScript knowledge is strongly recommended (a JS refresher module is included if you need to catch up on modern syntax).

  • General knowledge of how the web works helps, but it’s not required.

  • Basic HTML + CSS knowledge is helpful but not required.

Who Is This Course For?

  • Backend newcomers

    You know the basics of web development but haven’t built a real server-side app yet. This is a clear path into Node.js without assuming any prior Node experience.

  • JS developers leveling up

    You’re comfortable in JavaScript and want to turn that into practical backend skills you can use for web apps, APIs, and scalable services. You’ll get both the “why” and the “how,” anchored in real projects.

  • Experienced Node devs

    You already use Node.js but want deeper coverage of specific areas—like SQL with Node, GraphQL, or real-time apps with WebSockets. You can move quickly through familiar parts and focus on the advanced modules.

Curriculum Overview

Start Now

Preview the structure and pacing of this course before you begin.

  • Getting Started10 lectures36m
    • 01Introduction1:55 min
    • 02What is Node.js?4:42 min
    • 03Installing Node.js and Creating our First App7:41 min
    • 04Join our Online Learning Community0:00 min
    • 05Understanding the Role & Usage of Node.js7:32 min
    • 06Course Outline7:31 min
    • 07How To Get The Most Out Of The Course3:54 min
    • 08Working with the REPL vs Using FIles2:58 min
    • 09Using the Attached Source Code0:00 min
    • 10The Academind Pro Referral Program0:00 min
  • Optional: JavaScript - A Quick Refresher14 lectures49m
    • 01Module Introduction1:36 min
    • 02JavaScript in a Nutshell2:35 min
    • 03Refreshing the Core Syntax4:34 min
    • 04let & const2:27 min
    • 05Understanding Arrow Functions5:17 min
    • 06Working with Objects, Properties & Methods3:19 min
    • 07Arrays & Array Methods4:16 min
    • 08Arrays, Objects & Reference Types2:13 min
    • 09Understanding Spread & Rest Operators6:40 min
    • 10Destructuring5:37 min
    • 11Async Code & Promises10:28 min
    • 12Template Literals0:00 min
    • 13Wrap Up0:50 min
    • 14Useful Resources & Links0:00 min
  • Understanding the Basics18 lectures1h 46m
    • 01Module Introduction1:50 min
    • 02How The Web Works4:11 min
    • 03Creating a Node Server13:22 min
    • 04The Node Lifecycle & Event Loop4:53 min
    • 05Understanding Requests3:10 min
    • 06Sending Responses5:37 min
    • 07Controlling the Node.js Process0:00 min
    • 08Routing Requests5:48 min
    • 09Redirecting Requests4:10 min
    • 10Parsing Request Bodies11:12 min
    • 11Understanding Event Driven Code Execution6:00 min
    • 12Blocking and Non-Blocking Code5:04 min
    • 13Node.js - Looking Behind the Scenes12:01 min
    • 14Using the Node Modules System10:05 min
    • 15Wrap Up5:15 min
    • 16Assignment - Basics (Problem)2:32 min
    • 17Assignment - Basics (Solution)11:32 min
    • 18Useful Resources & Links0:00 min
  • Improved Development Workflow and Debugging15 lectures46m
    • 01Module Introduction0:40 min
    • 02Understanding NPM Scripts7:03 min
    • 03Installing 3rd Party Packages8:20 min
    • 04Global Features vs Core Modules vs Third-Party Modules0:00 min
    • 05Using Nodemon for Autorestarts1:36 min
    • 06Global & Local npmPackages0:00 min
    • 07Understanding different Error Types1:49 min
    • 08Finding & Fixing Syntax Errors3:10 min
    • 09Dealing with Runtime Errors2:47 min
    • 10Logical Errors6:32 min
    • 11Using the Debugger3:10 min
    • 12Restarting the Debugger Automatically After Editing our App6:21 min
    • 13Changing Variables in the Debug Console1:26 min
    • 14Wrap Up3:14 min
    • 15Useful Resources & Links0:00 min
  • Working with Express.js24 lectures1h 52m
    • 01Module Introduction2:15 min
    • 02What is Express.js?3:43 min
    • 03Installing Express.js3:47 min
    • 04Adding Middleware5:13 min
    • 05How Middleware Works2:58 min
    • 06Express.js - Looking Behind the Scenes3:42 min
    • 07Handling Different Routes4:59 min
    • 08Assignment - Express.js (Problem)1:52 min
    • 09Assignment - Express.js (Solution)6:21 min
    • 10Parsing Incoming Requests8:00 min
    • 11Limiting Middleware Execution to POST Requests1:48 min
    • 12Using Express Router8:04 min
    • 13Adding a 404 Error Page2:30 min
    • 14Filtering Paths3:38 min
    • 15Creating HTML Pages5:09 min
    • 16Serving HTML Pages7:19 min
    • 17Returning a 404 Page2:00 min
    • 18Using a Helper Function for Navigation3:37 min
    • 19Styling our Pages13:58 min
    • 20Serving Files Statically7:49 min
    • 21Assignment - Navigation (Problem)1:11 min
    • 22Assignment - Navigation (Solution)8:32 min
    • 23Wrap Up3:36 min
    • 24Useful Resources & Links0:00 min
  • Working with Dynamic Content & Adding Templating Engines17 lectures2h 4m
    • 01Module Introduction2:31 min
    • 02Sharing Data Across Requests & Users8:05 min
    • 03Templating Engines - An Overview4:40 min
    • 04Installing & Implementing Pug11:04 min
    • 05Outputting Dynamic Content11:02 min
    • 06Converting HTML Files to Pug5:55 min
    • 07Adding a Layout5:35 min
    • 08Finishing the Pug Template5:50 min
    • 09Working with Handlebars5:08 min
    • 10Converting our Project to Handlebars7:41 min
    • 11Adding the Layout to Handlebars8:41 min
    • 12Working with EJS8:19 min
    • 13Working on the Layout with Partials9:33 min
    • 14Wrap Up3:46 min
    • 15Assignment - Templating Engines (Problem)1:36 min
    • 16Assignment - Templating Engines (Solution)25:02 min
    • 17Useful Resources & Links0:00 min
  • The Model View Controller (MVC)10 lectures43m
    • 01Module Introduction0:52 min
    • 02What is the MVC?2:48 min
    • 03Adding Controllers9:20 min
    • 04Finishing the Controllers2:37 min
    • 05Adding a Product Model8:05 min
    • 06Storing Data in Files Via the Model9:39 min
    • 07Fetching Data from Files Via the Model3:55 min
    • 08Refactoring the File Storage Code4:25 min
    • 09Wrap Up2:15 min
    • 10Useful Resources & Links0:00 min
  • Optional: Enhancing the App9 lectures36m
    • 01Module Introduction1:21 min
    • 02Creating the Shop Structure5:34 min
    • 03Working on the Navigation2:49 min
    • 04Registering the Routes11:04 min
    • 05Storing Product Data5:15 min
    • 06Displaying Product Data3:02 min
    • 07Editing & Deleting Products4:47 min
    • 08Adding Another Item2:08 min
    • 09Useful Resources & Links0:00 min

And 28 more sections in the full course.

Ready to Get Started?

Choose the option that works best for you.

Single Course

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

One Payment. Lifetime Access.

$99one-time

  • One-time payment
  • All future updates for this course
  • Downloadable resources & code
  • Certificate of completion
  • Hands-on exercises & projects
  • Self-paced learning
  • English captions on all videos
  • Lifetime access