Course Highlights
  • 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
Skills you will learn!
Curriculum

9 Topics
Welcome
What is Node
Node Architecture
How Node Works
Installing Node
Your First Node Program
Course Structure
Recap
Asking Questions

14 Topics
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 Event Emitter
HTTP Module
Recap

17 Topics
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

15 Topics
Introduction
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
Recap

14 Topics
Introducion
MIddleware
Creating Custom Middleware
Built-In Middleware
Third-party Middleware
Environments
Configuration
Debugging
Templating Engines
Database Integration
Authentication
Structuring Express Applications
Project- Restructure the App
Recap

12 Topics
Synchronous Vs. Asynchronous Code
Patterns For Dealing With Asynchronous Code
Callbacks
Callback Hell
Named Functions to Rescue
Promises
Replacing Callbacks with Promises
Consuming Promises
Creating Settled Promises
Running Parallel Promises
Async and Await
Exercise

20 Topics
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 2
Exercise 3
Updating Documents- Query First
Updating a Document- Update First
Removing Documents
Recap

10 Topics
Validation
Built-In Validators
Custom Validators
Async Validators
Validation Errors
SchemaType Options
Project- Add Persistence to Genres API
Project- Build the Customers API
Restructuring the Project
Recap

12 Topics
Modelling Relationships
Referencing Documents
Population
Embedding Documents
Using an Array of Sub-documents
Project- Build the Movies API
Project- Build the Rentals API
Transactions
ObjectID
Validating Object ID's
A Better Implementation
Recap

19 Topics
Introduction
Creating the User Model
Registering Users
Using Lodash
Hashing Passwords
Authenticating Users
Testing the Authentication
JSON Web Tokens
Generating Authentication Tokens
Storing Secrets in Environment Variables
Setting Response Headers
Encapsulating Logic in Mongoose Models
Authorization Middleware
Protecting Routes
Getting the Current User
Logging Out Users
Role Based Authorization
Testing the Authorization
Recap

17 Topics
Introduction
Handling Rejected Promises
Express Error Middleware
Removing Try_Catch docs
Express Async Errors
Logging Errors
Logging to MongoDB
Uncaught Exceptions
Unhandled Promise Rejections
Error Handling Recap
Refactoring Index.js- Extracting Routes
Extracting the DB Logic
Logging
Extracting the Config Logic
Extracting the Validation Logic
Showing Unhandled Exceptions on the Console
Recap

21 Topics
What is Automated Testing?
Benefits of Automated Testing
Types of Tests
Test Pyramid
Tooling
Writing Your First Unit Test
Testing Numbers
Grouping Tests
Refactoring with Confidence
Testing Strings
Testing Arrays
Testing Objects
Testing Exceptions
Continually Running Tests
Exercise- Testing the FizzBuzz
Creating Simple Mock Functions
Interaction Testing
Jest Mock Functions
What to Unit Test
Exercise
Recap

17 Topics
Introduction
Preparing the App
Setting Up the Test DB
Your First Integration Test
Populating the Test DB
Testing Routes with Parameters
Validating Object ID's
Refactoring with Confidence
Testing the Authorization
Testing Invalid Inputs
Testing the Happy Paths
Writing Clean Tests
Testing the Auth Middleware
Unit Testing the Auth Middleware
Code Coverage
Exercise
Recap

17 Topics
What is Test-driven Development?
Implementing the Returns
Test Cases
Populating the Database
Testing the Authorization
Testing the Input
Refactoring Tests
Looking Up an Object
Testing if Rental Processed
Testing the Valid Request
Testing the Return Date
Testing the Rental Fee
Testing the Movie Stock
Testing the Response
Refactoring the Validation Logic
Mongoose Static Methods
Refactoring the Domain Logic

10 Topics
Introduction
Preparing the App for Production
Getting Started With Heroku
Preparing the App for Deployment
Adding the Code to a Git Repository
Deploying to Heroku
Viewing Logs
Setting Environment Variables
MongoDB in the Cloud
Coupon to My Other Courses

  Write a Review

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

Go to Paid Course