Introduction
Node.js Concepts
- RAM vs I/O latency
- Blocking vs. non-blocking
- Syntax and logic
The Fundamentals of APIs and Their Functionality
- Scalar types
- Web Architecture Patterns: the composite pattern, proxy pattern, and facade pattern
REST Overview
- Get option
- Pull option
- Post option
- Delete option
Preparing the Development Environment
- Installing and configuring Node.js
- Installing and configuring Express.js
- Installing and configuring MongoDB
- Testing the installations
Node Modules and Package Manager
- Creating a module
- Loading a module
- Using module functions
- Creating event arguments
- Extending event emitters
- Installing a Node package
- Using a package
- Listing packages
- Updating packages
- Uninstalling packages
- Publishing packages
Working with Express.js
- Creating custom middleware
- Using Express router
- Filtering paths
REST and GraphQL API
- Building a web server
- Handling routes
- Parsing HTTP requests
- Calling endpoints
- Defining schema
- Adding input validation
- Managing mutations
- Adding variables
- Handling errors
CRUD Operations Using MongoDB
- Saving documents
- Querying documents
- Updating documents
- Deleting documents
Authentication and Security
- Creating and registering users
- Generating tokens
- Storing in environment variables
- Protecting routes
- Testing the authorization
Troubleshooting
- Writing a unit test
- Writing an integration test
- Wiring a unit and integration test
Summary and Conclusion