We may earn an affiliate commission when you visit our partners.
Andrei Neagoie and Adam Odziemkowski

Just released with all new NodeJS best practices and trends. Join a live online community of over 900,000+ developers and a course taught by industry experts that have actually worked both in Silicon Valley and Toronto with NodeJS. Using the latest version of Node, this course is focused on efficiency and turning you into a Back End or Fullstack developer. Never spend time on confusing, out of date, incomplete tutorials anymore. Graduates of Andrei’s courses are now working at Google, Tesla, Amazon, Apple

Read more

Just released with all new NodeJS best practices and trends. Join a live online community of over 900,000+ developers and a course taught by industry experts that have actually worked both in Silicon Valley and Toronto with NodeJS. Using the latest version of Node, this course is focused on efficiency and turning you into a Back End or Fullstack developer. Never spend time on confusing, out of date, incomplete tutorials anymore. Graduates of Andrei’s courses are now working at Google, Tesla, Amazon, Apple

We guarantee you this is the most comprehensive online resource on NodeJS. This project based course will introduce you to all of the modern toolchain of a Node JS developer. Along the way, we will build a massive NASA Space launch application using NodeJS, Express Framework, RESTful APIs, GraphQL, and much more. This is going to be a Fullstack MERN app. We will also build many other mini projects along the way so you feel confident deploying any NodeJS project to production in the future by yourself.

All code is going to be provided step by step and even if you don’t like to code along, you will get access to all the code from the projects we build so anyone signed up for the course will have their own project to put on their portfolio right away.

The curriculum is going to be very hands on as we walk you from start to finish of releasing a professional (performant and secure) NodeJS project all the way into production. We will start from the very beginning by teaching you Node basics and then going into advanced topics so you can make good decisions on architecture and tools on any of your future NodeJS projects. The goal is to turn you into a senior backend developer.

Here is what the course will cover:1. Foundations

  • Focus on Node internals

  • Libuv, threads, processes, event loop

  • Asynchronous programming

  • Node vs PHP vs Python

  • Observer Design Pattern

  • Event Emitters

2. Module System

  • The require Function

  • Creating Your Own Modules

  • CommonJS vs ECMAScript (ES6) modules

  • Module Caching

  • Using index.js

3. Package Management

  • NPM: The Node Package Manager

  • Creating Your Own Packages

  • Package And the NPM Registry

  • Third Party Modules

  • The node_modules Folder

  • Semantic Versioning

  • package-lock json And Versioning

  • Vulnerabilities in Dependencies

4. File I/O: Planets Project

  • Exploring Exoplanets With Node

  • Exploring Kepler Space Telescope Data

  • Working With Streams

  • Streaming Large Data Files

  • Parsing Our Planets Data

  • Working With CSV Files

  • Finding Habitable Planets

5. Web Servers

  • What is a Web Server?

  • HTTP Responses and Requests

  • HTTP APIs and Routing, Parameterized URLs

  • Same Origin Policy, CORS

  • Requests and Responses as Streams

6. ExpressJS

  • Express vs NextJS vs Koa

  • Route Parameters

  • Model View Controller (MVC) pattern

  • Postman and Insomnia

  • Development Dependencies

  • Middleware

  • Logging Middleware Example / Writing Our Own Middleware

  • POST Requests in Express

  • MVC In Express

  • Express Routers

  • RESTful APIs

  • CRUD

  • Sending Files

  • Serving Websites With Node

  • Templating Engines

7. NodeJS NASA Project

  • Architecture diagrams on LucidChart

  • Serving ReactJS Applications in Express

  • CORS middleware

  • Models vs Controllers vs Routers

  • Loading Data On Startup

  • Automating Full Stack Applications With NPM

  • Serving React Front End (in Production)

  • Logging Requests with Morgan

  • Serving Applications With Client Side Routing

  • Building A Data Access Layer

  • Integrating with Frontend, Top Down Approach, Bottom Up Approach

  • Updating Our Architecture

8. Testing APIs

  • Unit tests vs API tests vs UI tests

  • Testing Node APIs with Jest and Supertest

9. Improving Node Performance

  • Example app which blocks event loop + real life blocking functions

  • Node Cluster Module theory + in action

  • Clustering in the real world

  • Load balancing

  • PM2 theory + in action

  • Managing Live Clusters with PM2

  • Zero Downtime Restarts

  • Improving Performance of NASA Project

  • Stateless APIs

  • Node Worker Threads

10. Databases

  • Using MongoDB to add persistence to NASA Project

  • Big focus on NoSQL vs SQL, PostgreSQL vs MongoDB, when to use both including Trends, Object-Relational Mismatch, ACID, References, Schemas. Schema-less vs Schemas

  • MongoDB Atlas

  • Horizontally Scaling Databases

  • Mongoose

  • Mongoose Models vs MVC Models

  • ObjectIDs in MongoDB

  • Pagination

  • Choosing A Database For Our NASA API

11. Working With REST APIs

  • Demonstrate integrating with a Authentication

    • Focus on Security first principles with JWT, cookies, CSRF

    • Servers with HTTPS and SSL / TLS

    • HelmetJS

    • Working With Auth0

    13. Deployment and CI/CD

    • Focus on building out a simple CI pipeline for NASA Project on GitHub

    • What is CI vs CD?

    • Automated tests

    • Dynamic configuration with secrets

    14. Node Production and the Cloud (AWS)

    • Deploy to production with Docker to Amazon EC2

    • Virtual Machines

    • Serverless vs Containers

    • Docker files

    • Managing Docker Containers and Images

    • Working With SSH

    • Production Deployment with PM2 and Mongo Atlas

    15. GraphQL

    • GraphQL vs REST

    • Building a GraphQL API

    16. Sockets (WebSockets, Socket io)

    • Sockets overview

    • Sockets vs polling

    • WebSockets (vs Socket io)

    • Socket io Client and Server APIs

    • Broadcasting Events

    • Build out Full Stack Multiplayer Pong with Sockets

    • Implementing Pong Game Logic

    • Using Socket io With Express.js

    • Namespaces and Rooms

    17-20.  Bonus Sections on Deno, Advanced Asynchronous JavaScript, SQL, and TypeScript.

    This course is not about making you just code along without understanding the principles so that when you are done with the course you don’t know what to do other than watch another tutorial. No. This course will push you and challenge you to go from an absolute beginner in NodeJS to someone that is in the top 10% of NodeJS backend developers. We guarantee you this is the most comprehensive online course on NodeJS. Have a look at the course outline video to see all the topics we are going to cover, all the projects we’re going to build, and all the techniques you’re going to learn to become a top Node developer. See you inside.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

The global Object
Introduction
Course Outline
Join Our Online Classroom!
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers Node internals, libuv, threads, processes, and the event loop, which are essential for understanding Node.js at a deeper level
Explores package management with NPM, covering topics like creating packages, semantic versioning, and handling vulnerabilities, which are crucial for managing dependencies in Node.js projects
Includes a section on deploying to production with Docker to Amazon EC2, which is valuable for full-stack developers looking to deploy Node.js applications to the cloud
Features a NASA project that uses NodeJS, Express, RESTful APIs, and GraphQL, providing practical experience with building a full-stack MERN application
Teaches Express.js, a popular framework, and explores its features like route parameters, middleware, MVC pattern, and RESTful APIs, which are essential for building web applications with Node.js
Requires students to use Postman and Insomnia, which may require learners to download and install these tools to complete the course

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Comprehensive node.js backend development

According to learners, this course provides a highly comprehensive and up-to-date deep dive into Node.js backend development. Students particularly highlight the practical, project-based approach, especially the large NASA space launch application, which helps solidify concepts across various technologies like Express, MongoDB, GraphQL, and deployment with Docker/AWS. The instructor is frequently praised for providing clear explanations and structuring the content logically, moving from fundamentals to more advanced topics like performance and testing. While the course covers a vast amount of material, some students note that the pace can be challenging and suggest having a solid foundation in JavaScript beforehand. Overall, it's considered an excellent resource for those aiming to become professional Node.js developers.
Some topics covered more deeply.
"While comprehensive, some advanced topics could benefit from even deeper dives."
"The course provides a solid foundation, but for mastery in every area (like GraphQL), you might need external resources."
"Covers breadth exceptionally well, but depth varies depending on the module."
Content is current with modern practices.
"The course felt very current, using the latest versions and best practices."
"It's clear the course is regularly updated to reflect changes in the Node.js ecosystem."
"I learned modern techniques for building Node.js applications."
Instructor explains complex topics well.
"The instructor explains complex topics like the event loop and Node internals very clearly."
"Explanations are easy to follow, even for potentially difficult subjects."
"I appreciate how the instructor breaks down concepts step-by-step."
Hands-on coding reinforces learning.
"Building the NASA project was awesome; it really helped connect all the different pieces."
"I loved the practical exercises and mini-projects that helped solidify my understanding."
"The project work provides a tangible portfolio piece and practical experience."
Wide range of topics covered in depth.
"I feel like I learned so much, everything from the basics to advanced topics like performance and testing."
"This course covers a huge amount of ground, from core Node.js principles to databases, GraphQL, and deployment."
"The most comprehensive resource I've found for becoming a well-rounded Node.js developer."
Course moves quickly at times.
"The course covers a lot very quickly; sometimes I had to pause and rewatch sections."
"It moves at a challenging pace, especially if you're new to some of the topics."
"Be prepared for a fast-paced learning experience."
Best for those with JS background.
"I think having a solid understanding of JavaScript beforehand is crucial for this course."
"It's not really for absolute coding beginners; some prior JS experience is needed."
"While it starts with basics, it quickly moves into more advanced concepts assuming JS familiarity."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Complete NodeJS Developer (GraphQL, MongoDB, + more) with these activities:
Review Asynchronous JavaScript Concepts
Reviewing asynchronous JavaScript concepts will help you better understand Node.js's non-blocking I/O model and event loop.
Browse courses on Asynchronous JavaScript
Show steps
  • Read articles and documentation on asynchronous JavaScript.
  • Practice writing asynchronous code using callbacks, promises, and async/await.
  • Review the event loop and how it handles asynchronous operations.
Read 'Node.js Design Patterns'
Reading this book will help you understand common design patterns used in Node.js applications, improving your code quality and architecture.
Show steps
  • Obtain a copy of 'Node.js Design Patterns'.
  • Read the book, focusing on patterns relevant to the course projects.
  • Implement some of the design patterns in your own code.
Build a Simple REST API with Express
Building a REST API will solidify your understanding of Express.js, routing, middleware, and HTTP methods.
Show steps
  • Set up a new Node.js project with Express.
  • Define routes for common CRUD operations (Create, Read, Update, Delete).
  • Implement middleware for logging and error handling.
  • Test the API endpoints using Postman or Insomnia.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice MongoDB CRUD Operations
Practicing CRUD operations in MongoDB will reinforce your understanding of database interactions within a Node.js application.
Show steps
  • Set up a local MongoDB instance or use MongoDB Atlas.
  • Create a database and collection.
  • Implement functions to create, read, update, and delete documents.
  • Test the functions to ensure they work correctly.
Write a Blog Post on Node.js Performance Optimization
Writing a blog post will force you to research and synthesize information about Node.js performance optimization techniques.
Show steps
  • Research different Node.js performance optimization techniques.
  • Choose a specific topic, such as clustering or worker threads.
  • Write a blog post explaining the technique and providing examples.
  • Publish the blog post on a platform like Medium or your own website.
Read 'Pro MERN Stack'
Reading this book will provide a broader understanding of the MERN stack, which is used in the course.
Show steps
  • Obtain a copy of 'Pro MERN Stack'.
  • Read the book, focusing on the sections relevant to the course projects.
  • Try building a small MERN stack application following the book's instructions.
Contribute to an Open Source Node.js Project
Contributing to open source will give you practical experience working on real-world Node.js projects and collaborating with other developers.
Show steps
  • Find an open-source Node.js project on GitHub that interests you.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature that you can work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Complete NodeJS Developer (GraphQL, MongoDB, + more) will develop knowledge and skills that may be useful to these careers:
Nodejs Developer
A NodeJS Developer specializes in building scalable and efficient server-side applications using the NodeJS runtime environment. This course is explicitly designed to turn you into a NodeJS Developer. The course covers Node internals, module systems, package management, and web servers. You'll learn to use ExpressJS, work with databases like MongoDB, and deploy applications to the cloud using Docker and Amazon EC2. The practical projects and hands-on approach prepare you to excel as a NodeJS Developer.
Backend Developer
As a Backend Developer, you design, build, and maintain the server-side logic and databases that power applications. This course is particularly relevant because it focuses on NodeJS, a popular runtime environment for backend development. The course covers essential backend concepts such as Node internals, asynchronous programming, module systems, and package management that help you become a Backend Developer. Additionally, this course helps build your backend skills through many mini projects, so you feel confident in your capabilities.
Full-Stack Developer
Full Stack Developers work on both the front-end and back-end of web applications. The course provides a comprehensive introduction to NodeJS, Express, RESTful APIs, and GraphQL. This combination of skills makes this course well-aligned for those who are becoming Full Stack Developers. You will learn to build a MERN application, gaining hands-on experience with technologies crucial for modern web development. The course also covers how to serve ReactJS applications in Express, a common task for Full Stack Developers.
API Developer
API Developers specialize in creating and maintaining Application Programming Interfaces (APIs) that allow different software systems to communicate. This course provides in-depth knowledge of building RESTful APIs with NodeJS and Express. You will learn how to design, implement, test, and secure APIs, including working with authentication using JWT, cookies, and CSRF. As an API Developer, the course's coverage of GraphQL versus REST will enable you to make informed decisions about API architecture. The course improves your ability to build robust and efficient APIs.
API Architect
API Architects design and oversee the implementation of APIs that enable different systems to communicate. This course provides in-depth knowledge of building RESTful APIs with NodeJS and Express, as well as GraphQL APIs. This course is useful because you will learn how to design, implement, test, and secure APIs. The course's coverage of authentication, security principles (JWT, cookies, CSRF), HTTPS, and SSL/TLS makes it useful for those focused on API architecture and security. The course will enhance your ability to design robust and secure APIs.
Web Application Developer
Web Application Developers are responsible for creating and maintaining web applications. Complete NodeJS Developer (GraphQL, MongoDB, + more) teaches you how to use NodeJS, Express, and related technologies to build robust web applications. The course covers essential topics such as HTTP APIs, routing, middleware, and database integration with MongoDB. The course may be particularly valuable for those who want to learn how to develop scalable and efficient web applications using modern JavaScript technologies.
DevOps Engineer
DevOps Engineers focus on automating and streamlining the software development lifecycle. The course is helpful because it covers key DevOps practices such as continuous integration and continuous deployment (CI/CD). This course is useful for those who want to be DevOps Engineers. You will learn how to build a simple CI pipeline for a NodeJS project on GitHub. The course also covers deployment to production with Docker to Amazon EC2. The skills gained from the course align well with the responsibilities of a DevOps Engineer.
Cloud Engineer
Cloud Engineers manage and maintain cloud infrastructure and services. This course covers essential cloud technologies and practices, including deploying NodeJS applications to the cloud using Docker and Amazon EC2. This course is useful because the content is closely related to the work of Cloud Engineers. You'll learn about virtual machines, serverless architecture, containers, and Docker files. The course helps understand how to manage Docker containers and images in a production environment. The CI/CD sections may also be useful to a Cloud Engineer.
Software Engineer
Software Engineers are involved in the design, development, and maintenance of software systems. This course may be valuable as it helps gain experience in backend development using NodeJS, a popular technology in the software engineering field. The course covers essential concepts such as asynchronous programming, module systems, and API development. The skills to build a NASA space launch application help you learn the practical aspects of software development. Learning continuous integration and continuous deployment is useful for Software Engineers.
Security Engineer
Security Engineers are responsible for protecting software systems and data from security threats. This course covers security principles and practices relevant to NodeJS application development. You'll learn about securing servers with HTTPS and SSL/TLS, using HelmetJS, and working with authentication using JWT, cookies, and CSRF. The course is very useful and helps you understand and implement security measures in your applications. The course's focus on security first principles is useful in building secure software.
Technical Lead
Technical Leads are responsible for guiding and overseeing technical teams in software development projects. This course covers a wide range of technologies and practices relevant to modern application development. You will gain insights into NodeJS, Express, RESTful APIs, GraphQL, database technologies, cloud deployment, and CI/CD. This knowledge base helps you make informed decisions and provides guidance to your team members. The course's NASA project may be useful as it provides experience with managing a complex development project.
Software Architect
A Software Architect designs the structure of a software system and ensures it meets the required quality attributes. This course covers a range of technologies and architectural patterns relevant to modern software development. You'll gain insights into NodeJS internals, module systems, API design, and database technologies. The NASA project may be useful as it provides experience with designing and building a complex application from start to finish. The course helps evaluate different technologies and make informed decisions about software architecture.
Software Consultant
Software Consultants advise organizations on how to effectively use software technologies to meet their business goals. This course is useful as it exposes you to a wide range of technologies and practices relevant to modern software development. You'll gain insights into NodeJS, Express, RESTful APIs, GraphQL, database technologies, cloud deployment, and CI/CD. This broad knowledge base is very useful as Consultant, and will allow you to assess different technologies and architectures.
Solutions Architect
Solutions Architects design and oversee the implementation of software solutions. The course may be helpful because it covers various technologies and architectures relevant to modern application development. You'll gain insights into NodeJS, Express, RESTful APIs, GraphQL, and database technologies such as MongoDB. This course that covers architecture diagrams helps understand how to design and integrate different components of a system. You will also gain familiarity with cloud deployment using Docker and Amazon EC2.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. This course covers database technologies such as MongoDB, a popular NoSQL database. The course's insights into NoSQL versus SQL databases, including trends, object-relational mismatch, and ACID properties, may be useful to Database Administrators. You'll also learn how to use Mongoose, a MongoDB object modeling tool. The course is valuable because it supports your understanding of database management in modern application development.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Complete NodeJS Developer (GraphQL, MongoDB, + more).
Explores various design patterns applicable to Node.js development. It provides practical solutions for building scalable and maintainable applications. Reading this book will help you understand how to structure your Node.js projects effectively and apply best practices. It valuable resource for intermediate to advanced Node.js developers.
Provides a comprehensive guide to building full-stack web applications using the MERN stack (MongoDB, Express.js, React.js, Node.js). It covers everything from setting up the development environment to deploying the application. Reading this book will give you a solid understanding of how the different components of the MERN stack work together. It useful reference for building full-stack projects.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser