The Complete Node.js Developer Course (3rd Edition)
4.7 (45,834 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
185,689 students enrolled

The Complete Node.js Developer Course (3rd Edition)

Learn Node.js by building real-world applications with Node, Express, MongoDB, Jest, and more!
Bestseller
4.7 (45,834 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
185,671 students enrolled
Last updated 4/2020
English
English [Auto-generated], French [Auto-generated], 5 more
  • German [Auto-generated]
  • Indonesian [Auto-generated]
  • Italian [Auto-generated]
  • Portuguese [Auto-generated]
  • Spanish [Auto-generated]
Current price: $58.99 Original price: $84.99 Discount: 31% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 35 hours on-demand video
  • 137 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Completely refilmed for 3rd edition
  • Build, test, and launch Node apps
  • Create Express web servers and APIs
  • Store data with Mongoose and MongoDB
  • Use cutting-edge ES6/ES7 JavaScript
  • Deploy your Node apps to production
  • Create real-time web apps with SocketIO
Course content
Expand all 177 lectures 35:01:08
+ Welcome
2 lectures 08:02

In this section, you'll learn how to get the most out of the class!

Preview 06:58

Get the most out of the class using it's 125 page PDF guide! This guide contains notes, code examples, and documentation links for each lesson.

Grab the PDF Guide
01:04
+ Installing and Exploring Node.js
5 lectures 48:01

In this section, you’re going to set up your machine for the rest of the course. This includes installing Node.js and Visual Studio Code. This section also dives into what Node.js is, how Node.js works, and why Node.js is a tool worth learning.

Preview 00:56

In this lesson, you’ll install Node.js and Visual Studio Code. Both are free, open source, and available for all operating system. They’re the only tools needed to get started with Node!

Preview 08:51

In this lesson, you’ll explore what Node.js is. This includes a brief tour of the V8 JavaScript engine, non-blocking I/O, and more!

Preview 15:31

Why should you use Node.js? In this lesson, you’ll learn what makes Node.js a tool worth using.

Preview 16:24

It’s time. In this lesson, you’ll be creating and running your very first Node.js app.

Preview 06:19
+ Node.js Module System (Notes App)
6 lectures 01:14:09

The best way to get started with Node.js is to explore its module system. The module system lets you load external libraries into your application. That’ll enable you to take advantage of built-in Node.js modules as well as third-party npm modules. This includes libraries for connecting to database, creating web servers, and more!

Preview 01:03

Node.js comes with dozens of built-in modules. These built-in modules, sometimes referred to as core modules, give you access to tools for working with the file system, making http requests, creating web servers, and more! In this lesson, you’ll learn how to load in those core modules and use them in your code.

Preview 16:28

Putting all your code in a single file makes it easy to get started with Node.js. As you add more code, you’ll want to stay organized and break your Node.js app into multiple scripts that all work together. In this lesson, you’ll learn how to create a Node.js application that’s spread out across multiple files.

Preview 16:35

When you install Node.js, you also get npm. npm is a package manager that allows you to install and use third-party npm libraries in your code. This opens up a world of possibilities, as there are npm packages for everything from email sending to file uploading. In this lesson, you’ll learn how to integrate npm into your Node.js app.

Preview 16:57

There are npm modules for pretty much anything you’d want to do with Node.js. In this lesson, it’s up to you to install and use a new one!

Printing in Color
14:23

You can use npm modules from outside of your scripts by installing them globally. Globally installed modules are designed to be used from the terminal and provide you with new commands you can run. In this lesson, you’ll learn how to install and work with global modules.

Global npm Modules and nodemon
08:43
+ File System and Command Line Args (Notes App)
11 lectures 02:14:50

It’s time to start building your first Node.js application. In this section, you’ll learn how to use the file system and command line arguments to create a note taking app. Along the way, you’ll learn how to get input from the user, work with JSON, and create a place to store user data.

Section Intro: File System and Command Line Args
00:55

I can’t think of a single useful application that doesn’t get input from the users. Whether it’s their email, location, or age, getting input is essential for creating real-world apps. In this lesson, you’ll learn how to set up command line arguments that allow users to pass data into your application.

Getting Input from Users
09:45

Node.js provides a bare-bones way to access command line arguments. While it’s a good start, it doesn’t provide any way to parse more complex command line arguments. In this lesson, you’ll learn how to use Yargs to easily set up a more complex set of arguments for your application.

Argument Parsing with Yargs: Part I
15:21

In this lesson, you’ll continue to explore Yargs. The goal is to allow users to pass in the title and body of their notes using command line options. This same technique could be used to allow users to pass in data such as their name, email, or address.

Argument Parsing with Yargs: Part II
11:21

In this lesson, you’ll learn how to work with JSON. JSON, which stands for JavaScript Object Notation, is a lightweight data format. JSON makes it easy to store or transfer data. You’ll be using it in this application to store users notes in the file system.

Storing Data with JSON
17:51

In this lesson, you’ll be saving new notes to the file system.

Adding a Note
18:33

It’s challenge time. In this lesson, you’ll be adding the ability for users to remove notes they’ve added.

Removing a Note
14:59

In this lesson, you’ll learn how to use ES6 arrow functions. Arrow functions come with a few great features, making them a nice alternative to the standard ES5 function. You’ll explore the new syntax and learn when to use them!

ES6 Aside: Arrow Functions
14:14

In this lesson, you’ll use what you’ve learned about arrow functions to integrate them into the Node.js app.

Refactoring to Use Arrow Functions
14:31

In this lesson, you’ll create a new app feature that allows users to list out their notes.

Listing Notes
05:30

In this lesson, you’ll add a new app feature that allows users to read a note.

Reading a Note
11:50
+ Debugging Node.js (Notes Apps)
3 lectures 23:36

What’s worse than getting an error when you run your application? Not knowing how to fix it. In this section, you’ll learn how to effectively debug your Node.js apps. You’ll learn how to track down and fix issues so you can get back to the important work.

Section Intro: Debugging Node.js
01:32

In this lesson, you’ll learn how to debug your Node.js applications. Node comes with a great set of tools for getting to the bottom of any bug or programming issue.

Debugging Node.js
17:11

In this lesson, you’ll learn how to read error messages. Error messages contain useful information about what went wrong, but they can be a pain to read. Learning how to read them will let you fix errors fast.

Error Messages
04:53
+ Asynchronous Node.js (Weather App)
14 lectures 03:36:21

It’s time to connect your application with the outside world. In this section, you’ll explore the asynchronous nature of Node.js. You’ll learn how to use asynchronous programming to make HTTP API requests to third-party HTTP APIs. This will allow you to pull in data, like real-time weather data, into your app.

Section Intro: Asynchronous Node.js
01:14

In this lesson, you’ll explore the basics of asynchronous development. You’ll get a preview of what asynchronous code looks like and how it’s different from synchronous code.

Asynchronous Basics
08:00

In this lesson, you’ll visualize how Node.js and V8 manage your asynchronous code. This includes the call stack, callback queue, event loop, and more!

Call Stack, Callback Queue, and Event Loop
18:14

In this lesson, you’ll learn how to make HTTP requests from Node. This will enable your app to communicate with other APIs and servers to do a wide variety of things. Everything from fetching real-time weather data to sending text messages to users.

Making HTTP Requests
24:31

In this lesson, you’ll explore an option for the request library that allows it to automatically parse JSON data into a JavaScript object.

Customizing HTTP Requests
19:41

It’s challenge time. In this video, it’s on you to integrate a geocoding API into the Node.js app.

An HTTP Request Challenge
18:31

There are plenty of reasons an HTTP request can fail. Maybe your machine doesn’t have an internet connection, or maybe the URL is incorrect. Regardless of what goes wrong, in this lesson, you’ll learn how to handle errors that occur when making HTTP requests.

Handling Errors
18:42

A callback function is a function that’s passed as an argument to another function. That’s it. This is something you’ve used before, and in this lesson, you’ll dive a bit deeper into how they work.

The Callback Function
16:18

Callback functions can be used to abstract complex asynchronous code into a simple reusable function. In this lesson, you’ll learn how to use this pattern to create a reusable function for geocoding an address.

Callback Abstraction
18:53

It’s challenge time. In this lesson, it’s on you to create a reusable function to fetch a weather forecast.

Callback Abstraction Challenge
14:55

In this lesson, you’ll learn how to run one asynchronous operation only after another asynchronous operation is complete. That’ll allow you to use the output from geocoding as the input for fetching the weather.

Callback Chaining
13:34

ES6 has done wonders making JavaScript easier to use. In this lesson, you’ll explore a couple of features that make it easier to work with objects.

ES6 Aside: Object Property Shorthand and Destructuring
15:04

In this video, it’s on you to use the property shorthand and object destructuring syntax in your Node.js app.

Destructuring and Property Shorthand Challenge
12:44

While the request library is great, it’s not necessary if you want to make HTTP requests from Node. In this bonus lesson, you’ll learn how to make an HTTP request without request.

Bonus: HTTP Requests Without a Library
16:00
+ Web Servers (Weather App)
11 lectures 02:22:01

Node.js is commonly used as a web server to serve up websites, JSON, and more. In this section, you’ll be creating your first Node server with Express. This will allow users to interact with your application by visiting a URL in the browser.

Section Intro: Web Servers
01:40

Serving up websites and JSON data is easy with Express. In this lesson, you’ll learn how to create your first web server with Express. Once the server is up and running, users will be able to interact with your application via the browser.

Hello Express!
18:21

With the basics out of the way, it’s time to serve up HTML and JSON with Express. That’ll let you serve up a static website or create an HTTP REST API designed to be consumed by a web or mobile application.

Serving up HTML and JSON
07:03

Express can serve up all the assets needed for your website. This includes HTML, CSS, JavaScript, images, and more. In this lesson, you’ll learn how to serve up an entire directory with Express.

Serving up Static Assets
14:49

In this lesson, you’ll use the Express server to serve up a webpage with images, styles, and scripts.

Serving up CSS, JS, Images, and More
11:30

Your web pages don’t have to be static. Express supports templating engines that allow you to render dynamic HTML pages. In this lesson, you’ll learn how to set up the Handlerbars templating engine with Express.

Dynamic Pages with Templating
20:04

In this lesson, you’ll learn how to customize the name and location of the views directory.

Customizing the Views Directory
07:26

In this lesson, you’ll learn how to work with Handlerbars partials. As the name suggests, partials are just part of a web page. Partials are great for things you need to show on multiple pages like headers, footers, and navigation bars.

Advanced Templating
16:24

In this lesson, you’ll learn how to set up a 404 page. The 404 page will show when a user tries to visit a page that doesn’t exist.

404 Pages
14:01

In this lesson, you’ll add some styles to the weather application.

Styling the Application: Part I
16:56

In this lesson, you’ll finish styling the weather application.

Styling the Application: Part II
13:47
+ Accessing API from Browser (Weather App)
7 lectures 01:21:38

In this section, you’ll learn how to set up communication between the client and the server. This will be done via HTTP requests. By the end of the section, users will be able to type an address in the browser to view their forecast.

Section Intro: Accessing API from Browser
00:52

In this lesson, you’ll learn how to use query strings to pass data from the client to the server. This will be used to send the address from the browser to Node.js. Node.js will then be able to fetch the weather for the address and send the forecast back to the browser.

The Query String
17:07

The weather application already has the code in place to fetch the weather for a given address. In this lesson, it’s your job to wire up the route handler to fetch the weather and send it back to the browser.

Building a JSON HTTP Endpoint
10:31

ES6 provides a new syntax to set default values for function arguments. In this lesson, you’ll use this new syntax to improve and clean up the application code.

ES6 Aside: Default Function Parameters
11:52

In this lesson, you’ll learn how to make HTTP AJAX requests from the browser. This will allow the web application to request the forecast from the Node.js server.

Browser HTTP Requests with Fetch
12:52

In this lesson, you’ll set up the weather search form. This will allow a visitor to type in their address, click a button, and then see their real-time forecast information.

Creating a Search Form
14:18

In this lesson, you’ll learn how to manipulate the text content of HTML elements from JavaScript. That will allow the weather application to render the forecast data to the browser instead of the console.

Wiring up the User Interface
14:06
+ Application Deployment (Weather App)
10 lectures 01:44:10

In this section, you’ll learn how to deploy your Node.js applications to production. This will allow anyone with an internet connection to view and interact with your Node.js app. Along the way, you’ll learn how to use Git, GitHub, Heroku, and more!

Section Intro: Application Deployment
01:03

In this lesson, you’ll join GitHub and Heroku. GitHub is a development platform that makes it easy to manage software development projects. Heroku is an application deployment platform which provides everything needed to deploy your Node.js applications.

Joining Heroku and GitHub
09:47

In this lesson, you’ll learn about version control. Version control allows you to track changes to your project code over time. This makes it easy to recover lost code and restore your project to a previously working version.

Version Control with Git
07:51

Git is not the easiest tool in the world to get started with. In this lesson, you’ll explore how Git works and how it can help you keep track of code changes.

Exploring Git
06:59

It’s time to start using Git. In this lesson, you’ll learn how to set up Git in your project. You’ll also explore the commands needed to get Git tracking your code.

Integrating Git
17:10

In this lesson, you’ll be setting up SSH on your machine. SSH is the protocol used to securely transfer code between your machine and GitHub/Heroku.

Setting up SSH Keys
08:47

In this lesson, you’ll learn how to push your code to GitHub.

Pushing Code to GitHub
11:57

In this lesson, you’ll deploy your application to Heroku. Anyone with an internet connection will be able to access and use your application!

Deploying Node.js to Heroku
15:55

In this lesson, you’ll go through the process of adding a new feature to the application. This includes committing the changes, pushing them to GitHub, and deploying them to Heroku.

New Feature Deployment Workflow
16:04

In this lesson, you’ll refactor your application to remove the use of global modules. This ensures that your application installs all the dependencies you need to run.

Avoiding Global Modules
08:37
+ MongoDB and Promises (Task App)
12 lectures 02:23:09

In this section, you’ll learn how to connect to a MongoDB database from your Node.js application. This will allow your application to store data in a secure and reliable fashion. The task application will use MongoDB to store user accounts as well as tasks.

Section Intro: Databases and Advanced Asynchronous Development
01:09

In this lesson, you’ll explore NoSQL databases and MongoDB. MongoDB and NoSQL database are a bit different than traditional SQL databases such as MySQL, so this lesson will bring you up to speed on some key ideas and terminologies related to NoSQL.

MongoDB and NoSQL Databases
08:06

In this lesson, you’ll learn how to install MongoDB on macOS and Linux. Using Windows? That’s covered in the next lesson.

Installing MongoDB on macOS and Linux
08:10

In this lesson, you’ll learn how to install MongoDB on Windows. Using macOS or Linux? They were covered in the previous lesson.

Installing MongoDB on Windows
08:30

In this lesson, you’ll set up Robo 3T. Robo 3T is a MongoDB admin tool that makes it easy to manage and visualize the data in your database.

Installing Database GUI Viewer
06:54

In this lesson, you’ll be connecting to your MongoDB database from your Node.js application. You’ll also learn how to insert documents into the database to save them for later.

Connecting and Inserting Documents
19:18

In this lesson, you’ll explore another way to insert documents into collections.

Inserting Documents
16:42

In this lesson, you’ll learn about ObjectIDs. MongoDB uses ObjectIDs to create unique identifiers for all the documents in the database. It’s different than the traditional auto-incrementing integer ID, but it comes with its own set of advantages.

The ObjectID
15:13

In this lesson, you’ll learn how to read data from MongoDB. This will allow you to fetch the documents that you had previously inserted.

Querying Documents
17:12

In this lesson, you’ll learn how to work with promises. Promises provide a much needed alternative to the traditional callback pattern.

Promises
18:03

In this lesson, you’ll learn how to update documents stored in MongoDB.

Updating Documents
16:06

In this lesson, you’ll learn how to delete documents stored in MongoDB.

Deleting Documents
07:46
Requirements
  • A computer on which you can install software (Windows, MacOS, or Linux)
  • A basic understanding of JavaScript (variables, functions, objects, arrays, if statements)
Description

This course was just completely refilmed to give you everything you need to master Node.js in 2019!

This includes new content, updated versions, new features, and more.

--

Have you tried to learn Node before? You start a new course, and the instructor has you installing a bunch of libraries before you even know what Node is or how it works. You eventually get stuck and reach out to the instructor, but you get no reply. You then close the course and never open it again.

Sound familiar?

I created this course to be what I wanted when I was learning Node.

The Complete Node.js Developer Course covers the fundamentals of Node before diving deep into great tools like Express, Mongoose, and MongoDB.

The entire course is based around a single goal: Turning you into a professional Node developer capable of developing, testing, and deploying real-world production applications.

The best way to learn Node is by building Node apps.

From the very start you’ll be programming every project and working through challenges that I’ve designed to reinforce what you’ve learned. This will give you the hands-on experience necessary to be able to create and launch your own project once you’re done.

You’ll be building four projects:

1. A note-taking app to get your feet wet

2. A weather application that interacts with the MapBox and Dark Sky APIs

3. A task manager REST API complete with user accounts and authentication

4. A real-time chat app with a client-side companion

By the end, you’ll be able to take what you’ve learned and launch your own Node application.

When learning, learn the latest.

I work to keep this course full of the most up-to-date Node material out there. This course is compatible with the latest Node.js version.

You’re getting access to hot-off-the-press features.

Everything you need comes in one easy-to-use package.

You can stop worrying if you're learning the right skills to build an app or land a new job. I've curated all the tech that's essential to building real-world apps. I've mapped out everything in a comprehensive, easy-to-follow package designed to get you up and running in a few weeks.

There’s no better time to learn Node.

According to the 2016 Stack Overflow Survey, Node is in the top ten for back-end popularity and back-end salary, with an average salary of $85k. This means more jobs and more opportunities for you.

You might get stuck. But I’m here to help.

There’s nothing worse than getting five hours into a course, getting stuck, and not getting the help you need to continue.

I’m in the Q&A everyday to help you get unstuck. I reply to every question to get you back on track.

Don’t take my word for it. Check the reviews and see what other students are saying.

“Any questions people seem to have are answered swiftly, clearly, and often with examples posted on GitHub. Even when the questions asked are out of the scope of the course Andrew seems to come up trumps." - Adam Tait

"This is amazing. What's even better is the instructor answered all the questions I asked." - Pak Chu

"The real value in this course is Andrew; he is not just a great teacher, but also he's quick to answer questions and provide feedback." - Nick Hester

I guarantee this is the most up-to-date and engaging Node course available, and it comes with a 30-day money-back guarantee.

During eight chapters you'll learn:

1. Node.js

2. Npm

3. Asynchronous programming

4. ES6/ES7

5. MongoDB

6. Express

7. Socket.IO

8. JWT Authentication

9. Mongoose

10. File and image uploads

11. Email sending

12. Application deployment with Heroku

13. Version control with Git

14. GitHub

15. REST API Design

16. Code testing

17. Debugging

18. Jest

19. Many more tools

I can’t wait to see you on the inside!

- Andrew

Who this course is for:
  • Anyone looking to launch their own Node applications, switch careers, or freelance as a Node developer