4.64 out of 5
4.64
35684 reviews on Udemy

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

Learn Node.js by building real-world applications with Node, Express, MongoDB, Jest, and more!
Instructor:
Andrew Mead
145,335 students enrolled
English [Auto-generated] More
Completely refilmed for 2019
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

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

Welcome

1
Welcome to the Class!

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

2
Grab the PDF Guide

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.

Installing and Exploring Node.js

1
Section Intro: Installing and Exploring Node.js

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.

2
Installing Node.js and Visual Studio Code

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!

3
What is Node.js?

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!

4
Why Should I Use Node.js?

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

5
Your First Node.js Script

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

Node.js Module System (Notes App)

1
Section Intro: Node.js Module System

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!

2
Importing Node.js Core Modules

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.

3
Importing Your Own Files

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.

4
Importing npm Modules

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.

5
Printing in Color

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!

6
Global npm Modules and nodemon

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.

File System and Command Line Args (Notes App)

1
Section Intro: File System and Command Line Args

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.

2
Getting Input from Users

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.

3
Argument Parsing with Yargs: Part I

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.

4
Argument Parsing with Yargs: Part II

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.

5
Storing Data with JSON

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.

6
Adding a Note

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

7
Removing a Note

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

8
ES6 Aside: Arrow Functions

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!

9
Refactoring to Use Arrow Functions

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

10
Listing Notes

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

11
Reading a Note

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

Debugging Node.js (Notes Apps)

1
Section Intro: Debugging Node.js

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.

2
Debugging Node.js

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.

3
Error Messages

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.

Asynchronous Node.js (Weather App)

1
Section Intro: Asynchronous Node.js

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.

2
Asynchronous Basics

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.

3
Call Stack, Callback Queue, and Event Loop

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!

4
Making HTTP Requests

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.

5
Customizing HTTP Requests

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

6
An HTTP Request Challenge

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

7
Handling Errors

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.

8
The Callback Function

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.

9
Callback Abstraction

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.

10
Callback Abstraction Challenge

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

11
Callback Chaining

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.

12
ES6 Aside: Object Property Shorthand and Destructuring

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.

13
Destructuring and Property Shorthand Challenge

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

14
Bonus: HTTP Requests Without a Library

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.

Web Servers (Weather App)

1
Section Intro: Web Servers

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.

2
Hello Express!

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.

3
Serving up HTML and JSON

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.

4
Serving up Static Assets

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.

5
Serving up CSS, JS, Images, and More

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

6
Dynamic Pages with Templating

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.

7
Customizing the Views Directory

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

8
Advanced Templating

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.

9
404 Pages

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.

10
Styling the Application: Part I

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

11
Styling the Application: Part II

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

Accessing API from Browser (Weather App)

1
Section Intro: Accessing API from Browser

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.

2
The Query String

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.

3
Building a JSON HTTP Endpoint

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.

4
ES6 Aside: Default Function Parameters

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.

5
Browser HTTP Requests with Fetch

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.

6
Creating a Search Form

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.

7
Wiring up the User Interface

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.

Application Deployment (Weather App)

1
Section Intro: Application Deployment

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!

2
Joining Heroku and GitHub

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.

3
Version Control with Git

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.

4
Exploring Git

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.

5
Integrating Git

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.

6
Setting up SSH Keys

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.

7
Pushing Code to GitHub

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

8
Deploying Node.js to Heroku

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

9
New Feature Deployment Workflow

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.

10
Avoiding Global Modules

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.

MongoDB and Promises (Task App)

1
Section Intro: Databases and Advanced Asynchronous Development

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.

2
MongoDB and NoSQL Databases

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.

3
Installing MongoDB on macOS and Linux

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

4
Installing MongoDB on Windows

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

5
Installing Database GUI Viewer

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.

6
Connecting and Inserting Documents

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.

7
Inserting Documents

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

8
The ObjectID

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.

9
Querying Documents

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.

10
Promises

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

11
Updating Documents

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

12
Deleting Documents

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

REST APIs and Mongoose (Task App)

1
Section Intro: REST APIs and Mongoose

In this section, you’ll be creating a REST API using Express. You’ll learn what exactly a REST API is and how it can be used as the back-end for a web or mobile application. This section also covers data validation, application architecture, async/await, and more.

2
Setting up Mongoose

In this lesson, you’ll be setting up Mongoose. Mongoose makes it easy to model and manage your application data. This includes data sanitization, data validation, and more. Mongoose will serve as a replacement for the native driver, providing you with a more object-oriented interface.

3
Creating a Mongoose Model

In this lesson, it’s on you to define a second Mongoose model for tasks.

4
Data Validation and Sanitization: Part I

In this lesson, you’ll set up data validation and sanitization for your models. Validation will allow you to restrict what data can be stored in the database, while sanitization will allow you to store user data in a uniform and standardized way.

5
Data Validation and Sanitization: Part II

In this lesson, it’s up to you to add validation and sanitization to the task model. You’ll also be defining a new field on the user model with validation and sanitization of its own.

6
Structuring a REST API

In this lesson, you’ll explore REST APIs. You’ll learn how to structure your API and how it can be used as the back-end for a web or mobile application.

7
Installing Postman

In this lesson, you’ll set up Postman. Postman makes it easy to test your REST API by providing you with a set of tools for making HTTP requests. This is not meant to serve as a replacement for a web or mobile application, it’s just a useful way to debug your endpoints as you’re creating them.

8
Resource Creation Endpoints: Part I

In this lesson, you’ll learn how to create REST API endpoints for creating resources. This will allow users of the API to create new users and new tasks.

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.6
4.6 out of 5
35684 Ratings

Detailed Rating

Stars 5
22956
Stars 4
10199
Stars 3
2079
Stars 2
294
Stars 1
156
afcb03d682b0d1ede9d04df4bc5bee80
30-Day Money-Back Guarantee

Includes

35 hours on-demand video
Full lifetime access
Access on mobile and TV
Certificate of Completion

Archive

Working hours

Monday 9:30 am - 6.00 pm
Tuesday 9:30 am - 6.00 pm
Wednesday 9:30 am - 6.00 pm
Thursday 9:30 am - 6.00 pm
Friday 9:30 am - 5.00 pm
Saturday Closed
Sunday Closed