Node.js: The Complete Guide to Build RESTful APIs (2018)
4.6 (8,578 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.
35,178 students enrolled

Node.js: The Complete Guide to Build RESTful APIs (2018)

Learn to build fast, scalable and secure RESTful services with Node, Express and MongoDB, from setup to production
Bestseller
4.6 (8,582 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.
35,178 students enrolled
Created by Mosh Hamedani
Last updated 4/2018
English
English, French [Auto], 6 more
  • Indonesian [Auto]
  • Italian [Auto]
  • Polish [Auto]
  • Portuguese [Auto]
  • Romanian [Auto]
  • Spanish [Auto]
Current price: $125.99 Original price: $179.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 15 hours on-demand video
  • 14 articles
  • 38 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
  • Build the backend for your web and mobile apps
  • Use modern JavaScript features (ES6, ES7)
  • Implement CRUD operations
  • Handle and log errors, the right way
  • Write unit and integration tests
  • Practice test-driven development (TDD)
  • Store and retrieve complex data in MongoDB
  • Implement authentication and authorization
  • Deploy your Node apps to production
  • Apply the best practices for building fast, scalable and secure apps
Course content
Expand all 224 lectures 15:03:25
+ Getting Started
9 lectures 18:30
Installing Node
02:31
Your First Node Program
02:19
Course Structure
02:13
Recap
00:00
Asking Questions
00:33
+ Node Module System
14 lectures 01:00:15
Introduction
00:28
Global Object
03:21
Modules
03:35
Creating a Module
04:43
Loading a Module
05:22
Module Wrapper Function
04:40
Path Module
04:08
OS Module
04:18
File System Module
04:50
Events Module
06:17
Event Arguments
03:08
Extending Event Emitter
08:01
HTTP Module
07:24
Recap
00:00
+ Node Package Manager
17 lectures 47:39
Introduction
03:41
Package.json
02:54
Installing a Node Package
03:33
Using a Package
03:20
Package Dependencies
03:18
NPM Packages and Source Control
03:51
Semantic Versioning
04:29
Listing the Installed Packages
02:10
Viewing Registry Info for a Package
02:45
Installing a Specific Version of a Package
01:05
Updating Local Packages
05:02
DevDependencies
01:51
Uninstalling a Package
00:40
Working with Global Packages
02:33
Publishing a Package
04:32
Updating a Published Package
01:55
Recap
00:00
+ Building RESTful API's Using Express
15 lectures 55:57
Introduction
00:47
RESTful Services
05:57
Introducing Express
02:19
Building Your First Web Server
05:45
Nodemon
01:30
Environment Variables
03:13
Route Parameters
03:22
Handling HTTP GET Requests
04:45
Handling HTTP POST Requests
03:42
Calling Endpoints Using Postman
02:07
Input Validation
07:58
Handling HTTP PUT Requests
08:30
Handling HTTP Delete Requests
04:44
Project- Build the Genres API
01:18
Recap
00:00
+ Express- Advanced Topics
14 lectures 53:59
Introducion
00:22
MIddleware
02:48
Creating Custom Middleware
04:23
Built-In Middleware
03:57
Third-party Middleware
03:55
Environments
04:06
Configuration
09:45
Debugging
06:54
Templating Engines
04:55
Database Integration
01:36
Authentication
00:29
Structuring Express Applications
07:44
Project- Restructure the App
03:05
Recap
00:00
+ Asynchronous JavaScript
12 lectures 01:01:39
Synchronous Vs. Asynchronous Code
05:51
Patterns For Dealing With Asynchronous Code
03:07
Callbacks
05:59
Callback Hell
02:28
Named Functions to Rescue
04:41
Promises
08:37
Replacing Callbacks with Promises
03:31
Consuming Promises
05:31
Creating Settled Promises
02:49
Running Parallel Promises
06:14
Async and Await
06:55
Exercise
05:56
+ CRUD Operations Using MongoDB
20 lectures 01:12:28
Introducing MongoDB
02:00
Installing MongoDB on Mac
03:58
Installing MongoDB on Windows
05:39
Connecting to MongoDB
03:52
Schemas
03:48
Models
04:18
Saving a Document
03:33
Querying Documents
04:18
Comparison Query Operators
04:59
Logical Query Operators
02:01
Regular Expressions
03:20
Counting
00:49
Pagination
01:36
Exercise 1
07:57
Exercise 2
04:34
Exercise 3
03:19
Updating Documents- Query First
03:35
Updating a Document- Update First
06:14
Removing Documents
02:38
Recap
00:00
+ Mongoose - Data Validation
10 lectures 54:35
Validation
06:59
Built-In Validators
04:54
Custom Validators
03:16
Async Validators
02:35
Validation Errors
03:37
SchemaType Options
05:56
Project- Add Persistence to Genres API
14:05
Project- Build the Customers API
06:59
Restructuring the Project
06:14
Recap
00:00
+ Mongoose- Modeling Relationships Between Connected Data
12 lectures 01:06:47
Modelling Relationships
07:45
Referencing Documents
03:51
Population
04:16
Embedding Documents
06:54
Using an Array of Sub-documents
04:31
Project- Build the Movies API
07:05
Project- Build the Rentals API
08:01
Transactions
08:45
ObjectID
07:03
Validating Object ID's
06:13
A Better Implementation
02:23
Recap
00:00
+ Authentication and Authorization
19 lectures 01:26:52
Introduction
04:01
Creating the User Model
03:40
Registering Users
07:53
Using Lodash
05:21
Hashing Passwords
06:54
Authenticating Users
04:54
Testing the Authentication
02:42
JSON Web Tokens
05:04
Generating Authentication Tokens
03:18
Storing Secrets in Environment Variables
06:12
Setting Response Headers
03:46
Encapsulating Logic in Mongoose Models
07:11
Authorization Middleware
06:50
Protecting Routes
03:06
Getting the Current User
04:03
Logging Out Users
02:04
Role Based Authorization
05:43
Testing the Authorization
04:10
Recap
00:00
Requirements
  • Basic familiarity with JavaScript
Description

What is Node.js?

Node.js, or Node, is a runtime environment for executing JavaScript code outside of a browser. It is ideal for building highly-scalable, data-intensive backend services (APIs) that power your client’s apps (web or mobile apps).


Why learn Node?

Node is great for prototyping and agile development as well as building super fast and highly scalable apps; Companies like Uber and PayPal use Node in production to build applications because it requires fewer people and less code. Plus, Node has the largest ecosystem of open-source library, so you don’t have to build everything from scratch.


A step-by-step, A to Z course

What you’ll get when you sign up for this course:

  • 15 hours of HD videos, complete with exercises and solutions

  • A real-world project: you'll build the back-end for a video rental application, not a dummy to-do app!

  • No more wasted time on lengthy courses or out-of-date tutorials

  • Up-to-date and practical information and solutions (no fluff!)

  • The opportunity to learn at your own pace - lifetime access - so take your time if you prefer

  • Expert tips to become a Node rockstar

  • The best practices and common pitfalls to avoid

  • Watch on any device, online or offline - mobile friendly and downloadable lessons

  • Certificate of completion to present to your employer


You’ll learn to:

  • Confidently build RESTful services (APIs) using Node.js, Express.js, and MongoDB

  • Employ the best practices for Node.js

  • Avoid common mistakes


What we’ll cover:

  • Node module system

  • Node Package Manager (NPM)

  • Asynchronous JavaScript

  • Useful ES6+ features

  • Implementing CRUD operations

  • Storing complex data in MongoDB

  • Data Validation

  • Authentication and authorization

  • Handling and logging errors the right way

  • Unit and integration testing

  • Test-driven development (TDD)

  • Deployment


This course is for you if:

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

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

You’ve tried other Node.js tutorials and found them to be too slow, out-of-date, and boring!

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


And here is what other students say: 

"Absolutely the best! Highly recommended if you want to get started on Node.js from zero. I have learned what Node is and what it can do. Truly comprehensive. Perfect rating! Mosh knows his stuff and he deserves your support. On a side note, my current company uses Mosh's courses as a huge resource and reference when training / refreshing knowledge. I just want to say thank you! Please don't stop teaching. You were born with the talent to teach." -Eugene John Arellano


"Mosh is one of the top 3 instructors for modern web development. He explains difficult concepts with ease. I recommend all of his courses because of the amount of detail and his style of teaching." -Warren Isaac


"What I like most about the course is Mosh's methodology and the way how he explains the things. Very well structured course with high quality of presentation as well." -Omar Amrani


Who is your instructor?

Hi! My name is Mosh Hamedani and I help ambitious developers take their coding skills to the next level. I'm a software engineer with more than 15 years of experience and I've taught over 200,000 students through my online courses. My YouTube channel, Programming with Mosh, has been watched more than 6M times. My students describe my teaching as clear, concise, and fun, without any fluff.


Do you want to become a Node rockstar? Enroll in the course and get started.


Who this course is for:
  • You’re a back-end developer familiar with frameworks like ASPNET, Rails, Django, etc. Now, you want to add Node to your toolbox.
  • You’re a front-end developer and want to transition to full-stack development.
  • Having Node on your resume helps you find more jobs and make more money.