What you'll learn

Node.js is an open-source, Javascript runtime environment on Chrome’s V8 that lets you effortlessly develop fast and scalable web applications. It utilizes an event-driven, non-blocking I/O model that makes it lightweight, efficient and excellent for data-intensive real-time applications that run across shared devices.
Node.js is an epitome of an exceptionally customizable and scalable tech. The server engine utilizes an event-based, non-blocking I/O model. This makes the adaptation of Javascript easier to the machine language providing execution of the code super fast.
The code operates faster in server-to-client direction. This enhances the performance ability of the web applications to the next level. To be more precise, web application development in Node.js ensures a steady and secure non-blocking I/O model, simplifying the code beautifully.
CURRICULUM
Get Started with Node.JS
- Introduction to Node.js
- Applications of Node.js and installation
- Writing your first Node.js Script
- Synchronous and Asynchronous programming
- Under the hood - understanding the event loop & Non-Blocking I/O
Interactive Node with REPL
- REPL and REPL Commands
- Node.js CLI Commands
- Global and Local Objects
Modular Programming & NPM
- Introduction to Modules
- Process and OS Modules
- Writing Your Own Module
- Introducing NPM
- Initializing a Project Using npm inits
- Understanding package.json
- Installing & using packages from npm
- Local vs.Global Install
- Using NPX
- Publishing Package on npm
Introduction to ECMAScript Modules - An experimental implementation
- ECMAScript Modules Versus CommonJS Modules
- Enabling support
- Writing an ECMAScript Module
- Importing and Using an ECMAScript Module
- ES6 syntax in detail
File System & Streams
- File System Modeling in Node.js
- Directory and Path Resolution
- Reading Files Synchronously and Asynchronously
- Events
- Directory operations
Streams
- Understanding Streams
- Reading a File Using Readable Stream
- Writing a file using Writable Streams
- Transform Streams
- Streams vs Files
Events
- Event Emitter
- Handling Events
Network I/O
- Introduction to the Net module
- Creating a TCP Server & Listener
- Creating a command-line chatbot
Web Servers & More
- Web Server: Web Application Architecture
- HTTP module
- Making HTTP requests
- Serve JSON as a response
- Serve HTML as a response
- Building a basic web server with routes and streams: Serve a static website
- Using HTTPS
- Using HTTP/2
- Understanding CORS
Debugging in Node JS
- Introduction to debugging
- Debug node js apps
Cluster & Worker Threads
- Introduction to the Worker Threads API
- Handling compute-intensive tasks using Worker Threads
- Node.js on multi-core CPUs using Cluster
Introduction to Express
- What is a Node.js web application framework?
- BYOF - Build Your Own Framework
- Introducing Express
- Who uses Express?
Hello Express
- Build your first Express app
- Learn adding a route handler
- Serving Static Assets & HTML files
Rendering
- View Engine – Pug
- Building the Dashboard
- Building the Post Card
Middleware
- What is middleware?
- Parsing incoming requests
- Logging with Morgan
- Using the express-session middleware
- Compression & Your own middleware
Routing
- Modular routing with Express Router
- Organizing routes
- Dynamic Routing & Route parameters
- Basic route protection using middleware
Database Integration
- Working with MongoDB Atlas
- Setting up Mongoose ODM
- Building the Users schema & model
- Serving the client web application
Authentication,Controllers & APIs
- Signing up an Admin & Password Hashing
- Admin Authentication - Controller and Route
- Authentication API - Controller and Routes
- Posts API - Controller and Routes
- Profanity Filtering and Post Moderation
Caching & Performance
- Setting up Redis for caching
- Caching and Serving Content
- Configuring Redis as the session store
Protecting Express Apps
- Handling untrusted data
- Preventing XSS & CSRF
Deployment
- Deploying an Express app on Heroku
Capstone Project
In Final capstone project, you are required to build an API server that uses a file-based database (or MongoDB) to serve multiple routes and HTTP verbs with minimal configuration needed to get up and running. The result is a simple, yet powerful API server for development purposes such as building React, Angular, and Vue applications.