The Complete Node.js Developer Course (3rd Edition)
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.
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:
3. Asynchronous programming
8. JWT Authentication
10. File and image uploads
11. Email sending
12. Application deployment with Heroku
13. Version control with Git
15. REST API Design
16. Code testing
19. Many more tools
I can’t wait to see you on the inside!
In this section, you'll learn how to get the most out of the class!
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
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.
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!
Why should you use Node.js? In this lesson, you’ll learn what makes Node.js a tool worth using.
It’s time. In this lesson, you’ll be creating and running your very first Node.js app.
Node.js Module System (Notes App)
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!
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.
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.
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.
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!
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)
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.
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.
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.
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.
In this lesson, you’ll be saving new notes to the file system.
It’s challenge time. In this lesson, you’ll be adding the ability for users to remove notes they’ve added.
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!
In this lesson, you’ll use what you’ve learned about arrow functions to integrate them into the Node.js app.
In this lesson, you’ll create a new app feature that allows users to list out their notes.
In this lesson, you’ll add a new app feature that allows users to read a note.
Debugging Node.js (Notes Apps)
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.
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.
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)
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.
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.
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!
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.
It’s challenge time. In this video, it’s on you to integrate a geocoding API into the Node.js app.
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.
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.
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.
It’s challenge time. In this lesson, it’s on you to create a reusable function to fetch a weather forecast.
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.
In this video, it’s on you to use the property shorthand and object destructuring syntax in your Node.js app.
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)
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.
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.
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.
In this lesson, you’ll use the Express server to serve up a webpage with images, styles, and scripts.
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.
In this lesson, you’ll learn how to customize the name and location of the views directory.
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.
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.
In this lesson, you’ll add some styles to the weather application.
In this lesson, you’ll finish styling the weather application.
Accessing API from Browser (Weather App)
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.
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 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.
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.
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.
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.
Application Deployment (Weather App)
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!
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.
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.
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.
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.
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.
In this lesson, you’ll learn how to push your code to GitHub.
In this lesson, you’ll deploy your application to Heroku. Anyone with an internet connection will be able to access and use your application!
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.
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)
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.
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.
In this lesson, you’ll learn how to install MongoDB on macOS and Linux. Using Windows? That’s covered in the next lesson.
In this lesson, you’ll learn how to install MongoDB on Windows. Using macOS or Linux? They were covered in the previous lesson.
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.
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.
In this lesson, you’ll explore another way to insert documents into collections.
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.
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.
In this lesson, you’ll learn how to work with promises. Promises provide a much needed alternative to the traditional callback pattern.
In this lesson, you’ll learn how to update documents stored in MongoDB.
In this lesson, you’ll learn how to delete documents stored in MongoDB.
REST APIs and Mongoose (Task App)
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.
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.
In this lesson, it’s on you to define a second Mongoose model for tasks.
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.
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.
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.
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.
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.