You must be logged in to take this course → LOGIN | REGISTER NOW
Learn to build fast, scalable and secure RESTful services with Node, Express and MongoDB, from setup to production
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 Curriculum
Getting Started | |||
Welcome | 00:00:00 | ||
What is Node | 00:00:00 | ||
Node Architecture | 00:00:00 | ||
How Node Works | 00:00:00 | ||
Installing Node | 00:00:00 | ||
Your First Node Program | 00:00:00 | ||
Course Structure | 00:00:00 | ||
Recap | 00:00:00 | ||
Asking Questions | 00:00:00 | ||
Node Module System | |||
Introduction | 00:00:00 | ||
Global Object | 00:00:00 | ||
Modules | 00:00:00 | ||
Creating a Module | 00:00:00 | ||
Loading a Module | 00:00:00 | ||
Module Wrapper Function | 00:00:00 | ||
Path Module | 00:00:00 | ||
OS Module | 00:00:00 | ||
File System Module | 00:00:00 | ||
Events Module | 00:00:00 | ||
Event Arguments | 00:00:00 | ||
Extending Event Emitter | 00:00:00 | ||
HTTP Module | 00:00:00 | ||
Recap | 00:00:00 | ||
Node Package Manager | |||
Introduction | 00:00:00 | ||
Package.json | 00:00:00 | ||
Installing a Node Package | 00:00:00 | ||
Using a Package | 00:00:00 | ||
Package Dependencies | 00:00:00 | ||
NPM Packages and Source Control | 00:00:00 | ||
Semantic Versioning | 00:00:00 | ||
Listing the Installed Packages | 00:00:00 | ||
Viewing Registry Info for a Package | 00:00:00 | ||
Installing a Specific Version of a Package | 00:00:00 | ||
Updating Local Packages | 00:00:00 | ||
DevDependencies | 00:00:00 | ||
Uninstalling a Package | 00:00:00 | ||
Working with Global Packages | 00:00:00 | ||
Publishing a Package | 00:00:00 | ||
Updating a Published Package | 00:00:00 | ||
Recap | 00:00:00 | ||
Building RESTful API's Using Express | |||
Introduction | 00:00:00 | ||
RESTful Services | 00:00:00 | ||
Introducing Express | 00:00:00 | ||
Building Your First Web Server | 00:00:00 | ||
Nodemon | 00:00:00 | ||
Environment Variables | 00:00:00 | ||
Route Parameters | 00:00:00 | ||
Handling HTTP GET Requests | 00:00:00 | ||
Handling HTTP POST Requests | 00:00:00 | ||
Calling Endpoints Using Postman | 00:00:00 | ||
Input Validation | 00:00:00 | ||
Handling HTTP PUT Requests | 00:00:00 | ||
Handling HTTP Delete Requests | 00:00:00 | ||
Project- Build the Genres API | 00:00:00 | ||
Recap | 00:00:00 | ||
Express- Advanced Topics | |||
Introducion | 00:00:00 | ||
MIddleware | 00:00:00 | ||
Creating Custom Middleware | 00:00:00 | ||
Built-In Middleware | 00:00:00 | ||
Third-party Middleware | 00:00:00 | ||
Environments | 00:00:00 | ||
Configuration | 00:00:00 | ||
Debugging | 00:00:00 | ||
Templating Engines | 00:00:00 | ||
Database Integration | 00:00:00 | ||
Authentication | 00:00:00 | ||
Structuring Express Applications | 00:00:00 | ||
Project- Restructure the App | 00:00:00 | ||
Recap | 00:00:00 | ||
Asynchronous JavaScript | |||
Synchronous Vs. Asynchronous Code | 00:00:00 | ||
Patterns For Dealing With Asynchronous Code | 00:00:00 | ||
Callbacks | 00:00:00 | ||
Callback Hell | 00:00:00 | ||
Named Functions to Rescue | 00:00:00 | ||
Promises | 00:00:00 | ||
Replacing Callbacks with Promises | 00:00:00 | ||
Consuming Promises | 00:00:00 | ||
Creating Settled Promises | 00:00:00 | ||
Running Parallel Promises | 00:00:00 | ||
Async and Await | 00:00:00 | ||
Exercise | 00:00:00 | ||
CRUD Operations Using MongoDB | |||
Introducing MongoDB | 00:00:00 | ||
Installing MongoDB on Mac | 00:00:00 | ||
Installing MongoDB on Windows | 00:00:00 | ||
Connecting to MongoDB | 00:00:00 | ||
Schemas | 00:00:00 | ||
Models | 00:00:00 | ||
Saving a Document | 00:00:00 | ||
Querying Documents | 00:00:00 | ||
Comparison Query Operators | 00:00:00 | ||
Logical Query Operators | 00:00:00 | ||
Regular Expressions | 00:00:00 | ||
Counting | 00:00:00 | ||
Pagination | 00:00:00 | ||
Exercise 1 | 00:00:00 | ||
Exercise 2 | 00:00:00 | ||
Exercise 3 | 00:00:00 | ||
Updating Documents- Query First | 00:00:00 | ||
Updating a Document- Update First | 00:00:00 | ||
Removing Documents | 00:00:00 | ||
Recap | 00:00:00 | ||
Mongoose - Data Validation | |||
Validation | 00:00:00 | ||
Built-In Validators | 00:00:00 | ||
Custom Validators | 00:00:00 | ||
Async Validators | 00:00:00 | ||
Validation Errors | 00:00:00 | ||
SchemaType Options | 00:00:00 | ||
Project- Add Persistence to Genres API | 00:00:00 | ||
Project- Build the Customers API | 00:00:00 | ||
Restructuring the Project | 00:00:00 | ||
Recap | 00:00:00 | ||
Mongoose- Modeling Relationships Between Connected Data | |||
Modelling Relationships | 00:00:00 | ||
Referencing Documents | 00:00:00 | ||
Population | 00:00:00 | ||
Embedding Documents | 00:00:00 | ||
Using an Array of Sub-documents | 00:00:00 | ||
Project- Build the Movies API | 00:00:00 | ||
Project- Build the Rentals API | 00:00:00 | ||
Transactions | 00:00:00 | ||
ObjectID | 00:00:00 | ||
Validating Object ID’s | 00:00:00 | ||
A Better Implementation | 00:00:00 | ||
Recap | 00:00:00 | ||
Authentication and Authorization | |||
Introduction | 00:00:00 | ||
Creating the User Model | 00:00:00 | ||
Registering Users | 00:00:00 | ||
Using Lodash | 00:00:00 | ||
Hashing Passwords | 00:00:00 | ||
Authenticating Users | 00:00:00 | ||
Testing the Authentication | 00:00:00 | ||
JSON Web Tokens | 00:00:00 | ||
Generating Authentication Tokens | 00:00:00 | ||
Storing Secrets in Environment Variables | 00:00:00 | ||
Setting Response Headers | 00:00:00 | ||
Encapsulating Logic in Mongoose Models | 00:00:00 | ||
Authorization Middleware | 00:00:00 | ||
Protecting Routes | 00:00:00 | ||
Getting the Current User | 00:00:00 | ||
Logging Out Users | 00:00:00 | ||
Role Based Authorization | 00:00:00 | ||
Testing the Authorization | 00:00:00 | ||
Recap | 00:00:00 | ||
Handling and Logging Errors | |||
Introduction | 00:00:00 | ||
Handling Rejected Promises | 00:00:00 | ||
Express Error Middleware | 00:00:00 | ||
Removing Try_Catch docs | 00:00:00 | ||
Express Async Errors | 00:00:00 | ||
Logging Errors | 00:00:00 | ||
Logging to MongoDB | 00:00:00 | ||
Uncaught Exceptions | 00:00:00 | ||
Unhandled Promise Rejections | 00:00:00 | ||
Error Handling Recap | 00:00:00 | ||
Refactoring Index.js- Extracting Routes | 00:00:00 | ||
Extracting the DB Logic | 00:00:00 | ||
Logging | 00:00:00 | ||
Extracting the Config Logic | 00:00:00 | ||
Extracting the Validation Logic | 00:00:00 | ||
Showing Unhandled Exceptions on the Console | 00:00:00 | ||
Recap | 00:00:00 | ||
Unit Testing | |||
What is Automated Testing? | 00:00:00 | ||
Benefits of Automated Testing | 00:00:00 | ||
Types of Tests | 00:00:00 | ||
Test Pyramid | 00:00:00 | ||
Tooling | 00:00:00 | ||
Writing Your First Unit Test | 00:00:00 | ||
Testing Numbers | 00:00:00 | ||
Grouping Tests | 00:00:00 | ||
Refactoring with Confidence | 00:00:00 | ||
Testing Strings | 00:00:00 | ||
Testing Arrays | 00:00:00 | ||
Testing Objects | 00:00:00 | ||
Testing Exceptions | 00:00:00 | ||
Continually Running Tests | 00:00:00 | ||
Exercise- Testing the FizzBuzz | 00:00:00 | ||
Creating Simple Mock Functions | 00:00:00 | ||
Interaction Testing | 00:00:00 | ||
Jest Mock Functions | 00:00:00 | ||
What to Unit Test | 00:00:00 | ||
Exercise | 00:00:00 | ||
Recap | 00:00:00 | ||
Integration Testing | |||
Introduction | 00:00:00 | ||
Preparing the App | 00:00:00 | ||
Setting Up the Test DB | 00:00:00 | ||
Your First Integration Test | 00:00:00 | ||
Populating the Test DB | 00:00:00 | ||
Testing Routes with Parameters | 00:00:00 | ||
Validating Object ID’s | 00:00:00 | ||
Refactoring with Confidence | 00:00:00 | ||
Testing the Authorization | 00:00:00 | ||
Testing Invalid Inputs | 00:00:00 | ||
Testing the Happy Paths | 00:00:00 | ||
Writing Clean Tests | 00:00:00 | ||
Testing the Auth Middleware | 00:00:00 | ||
Unit Testing the Auth Middleware | 00:00:00 | ||
Code Coverage | 00:00:00 | ||
Exercise | 00:00:00 | ||
Recap | 00:00:00 | ||
Test-driven Development | |||
What is Test-driven Development? | 00:00:00 | ||
Implementing the Returns | 00:00:00 | ||
Test Cases | 00:00:00 | ||
Populating the Database | 00:00:00 | ||
Testing the Authorization | 00:00:00 | ||
Testing the Input | 00:00:00 | ||
Refactoring Tests | 00:00:00 | ||
Looking Up an Object | 00:00:00 | ||
Testing if Rental Processed | 00:00:00 | ||
Testing the Valid Request | 00:00:00 | ||
Testing the Return Date | 00:00:00 | ||
Testing the Rental Fee | 00:00:00 | ||
Testing the Movie Stock | 00:00:00 | ||
Testing the Response | 00:00:00 | ||
Refactoring the Validation Logic | 00:00:00 | ||
Mongoose Static Methods | 00:00:00 | ||
Refactoring the Domain Logic | 00:00:00 | ||
Deployment | |||
Introduction | 00:00:00 | ||
Preparing the App for Production | 00:00:00 | ||
Getting Started With Heroku | 00:00:00 | ||
Preparing the App for Deployment | 00:00:00 | ||
Adding the Code to a Git Repository | 00:00:00 | ||
Deploying to Heroku | 00:00:00 | ||
Viewing Logs | 00:00:00 | ||
Setting Environment Variables | 00:00:00 | ||
MongoDB in the Cloud | 00:00:00 | ||
Coupon to My Other Courses | 00:00:00 |
Course Reviews
No Reviews found for this course.
4 STUDENTS ENROLLED