So, you want to learn Node.js, but you’re fed up of being talked down to?

Too many instructors talk at you like you’ve never programmed before.

I get it…

I’ve been there myself when I was learning Node.js.

It felt like they assumed I was an idiot.

They were too wordy and slow. I ended up watching some tutorials on 2x – I was so bored!

Other instructors gave out-of-date information – the old ways of doing things. There’s nothing worse than paying decent money for a course then regretting it when it doesn’t deliver.

Then there are the instructors who teach you a load of theory (kind of like university lecturers), but there’s nothing hands-on…YAWN! To get good at coding, you have to learn it through practice.

The more practical a course is, the better the learning will stick.

None of the courses out there seemed to be the right fit for me. I had to piece together info from multiple books and training, then come up with my own practical solutions.

It took me much longer than it should have.

That’s why I decided to make a Node.js course that is different.

There’s no B.S.

No waffle. No bumph. No nonsense.

It’s more practical than theoretical.

You'll learn the best practices to apply

...and common mistakes that many Node.js developers make!

Master Node.js

Right from the beginning, you'll jump in and build your first Node.js application within minutes.

  • Node module system
  • Storing complex data in MongoDB
  • Node Package Manager (NPM)
  • Data validation
  • Asynchronous JavaScript
  • Authentication and authorization
  • Building RESTful APIs with Express.js
  • Handling and logging errors
  • Implementing CRUD operations
  • Unit and integration testing

  • Test-driven development (TDD)
  • Deployment

This course is for you if...

You’re a back-end developer who’s used to working with frameworks like 
ASP.NET, Rails, Django, etc. Now, you want to add Node.js to your toolbox.

You’re a front-end developer and want to transition to full-stack development.

Having Node.js on your resume helps you find more jobs and make more money.


You don't need any familiarity with Node, Express or MongoDB. 
You just need some basic familiarity with JavaScript.

Justin Joseph

Justin Joseph

"If you aspire to be a back-end or full-stack JavaScript developer, you can't go wrong having this Node course as a resource. Mosh is an excellent instructor, and his enthusiasm for web technology is infectious. From the basics of how Node works under the hood, to testing your API code, this course delivers great content that will help you land that next career opportunity."
Brian Haller

Brian Haller

"Hi Mosh, I'm really loving your Node and OOP Javascript courses. I’m finally understanding prototypical inheritance and async programming! I'm 8 months into learning how to become a developer, and making very good progress. My previous instruction before your courses on those subjects wasn't thorough enough to be especially useful. I used the supplemental material (the event loop) to understand async and your lessons were very good there as well. The lessons on unit and integration testing are also really beneficial."

Your Instructor

  • Mosh Hamedani

    Software Engineer & Instructor

    Mosh Hamedani

    Hi! My name is Mosh Hamedani. Over the last three years, I've taught over 1M students how to code or how to become a better coder through my online courses and YouTube channel. I've been working as a software engineer for the past 18 years and I love to share my knowledge with you. It’s my mission to make coding accessible to everyone.

Course curriculum

  • 01
    Getting Started
    Show details
    • Welcome
    • What is Node
    • Node Architecture
    • How Node Works
    • Installing Node
    • Your First Node Program
    • Course Structure
    • Recap
  • 02
    Node Module System
    Show details
    • Introduction
    • Global Object
    • Modules
    • Creating a Module
    • Loading a Module
    • Module Wrapper Function
    • Path Module
    • OS Module
    • File System Module
    • Events Module
    • Event Arguments
    • Extending EventEmitter
    • HTTP Module
    • Recap
  • 03
    Node Package Manager (NPM)
    Show details
    • Introduction
    • Package.json
    • Installing a Node Package
    • Using a Package
    • Package Dependencies
    • NPM Packages and Source Control
    • Semantic Versioning
    • Listing the Installed Packages
    • Viewing Registry info for a Package
    • Installing a Specific Version of a Package
    • Updating Local Packages
    • DevDependencies
    • Uninstalling a Package
    • Working with Global Packages
    • Publishing a Package
    • Updating a Published Package
    • Recap
  • 04
    Building RESTful APIs Using Express
    Show details
    • Introduction
    • Express Source
    • RESTful Services
    • Introducing Express
    • Building Your First Web Server
    • Nodemon
    • Environment Variables
    • Route Parameters
    • Handling HTTP GET Requests
    • Handling HTTP POST Requests
    • Calling Endpoints Using Postman
    • Input Validation
    • Handling HTTP PUT Requests
    • Handling HTTP DELETE Requests
    • Project- Build the Genres API
    • Project- Genres Endpoint
    • Recap
  • 05
    Express- Advanced Topics
    Show details
    • Introduction
    • Middleware
    • Creating Custom Middleware
    • Built-in Middleware
    • Third-party Middleware
    • Environments
    • Configuration
    • Debugging
    • Templating Engines
    • Authentication
    • Structuring Express Applications
    • Project- Restructure the App
    • Project- Restructure the App
    • Recap
  • 06
    Asynchronous JavaScript
    Show details
    • Synchronous vs Asynchronous Code
    • Asynchronous JavaScript Source
    • Patterns for Dealing with Asynchronous Code
    • Callbacks
    • Callback Hell
    • Named Functions to Rescue
    • Promises
    • Replacing Callbacks with Promises
    • Replacing Promises
    • Consuming Promises
    • Creating Settled Promises
    • Running Parallel Promises
    • Async and Await
    • Async and Await Source
    • Exercise
  • 07
    CRUD Operations using Mongoose and MongoDB
    Show details
    • Introducing MongoDB
    • Installing MongoDB on Mac
    • Installing MongoDB on Windows
    • Connecting to MongoDB
    • Schemas
    • Models
    • Saving a Document
    • Querying Documents
    • Comparison Query Operators
    • Logical Query Operators
    • Regular Expressions
    • Counting
    • Pagination
    • Exercise 1
    • Exercise 1 Source
    • Exercise 2
    • Exercise 2 Source
    • Exercise 3
    • Exercise 3 Source
    • Updating Documents- Query First
    • Updating a Document- Update First
    • Removing Documents
    • CRUD Operations with Mongoose and MongoDB Recap
  • 08
    Mongoose- Data Validation
    Show details