
Explore the fundamentals of NodeJS, Express.js, and MongoDB, and learn how to install and connect NodeJS and MongoDB. Understand NodeJS architecture, how NodeJS works, and different server request types.
Discover Node.js, an open-source runtime for running JavaScript outside the browser to build scalable back-end APIs and real-time services, with PayPal's faster, leaner Node-powered app as a case study.
Explore how Node architecture runs JavaScript outside the browser by using the V8 engine, offering native objects like read file and HTTP for server-side tasks.
Understand how NodeJS uses a single thread with non-blocking I/O and an event queue to handle many requests, enabling data-intensive and real-time apps while avoiding CPU-heavy tasks.
Explore Express.js as a lightweight server-side framework for Node.js that simplifies building MVC-structured web apps and APIs with middleware, routing, debugging, and templating capabilities.
Explore how MongoDB uses a NoSQL distributed model to store JSON (BSON) in collections of documents, with optional schema, and compare it to MySQL for building scalable Node.js APIs.
Install NodeJS and MongoDB, set up a MongoDB Atlas cluster, and connect to a NodeJS project to build APIs for a food delivery and e-commerce platform.
Explore the different types of server requests, including gate (fetch data), post (add data), put (update all data), patch (update partial data), and delete.
learn to set up a nodejs project with typescript and implement routing and middleware. connect to mongodb, manage environment variables, structure code, handle errors, validate requests, and understand status codes.
Install and set up Visual Studio Code for NodeJS projects across Windows, Mac, and Linux, configure the code command path, and tailor with essential extensions and autosave.
Create a new nodejs project with typescript, set up the environment, and install essentials like typescript, ts-node, express, and node mon. Configure tsconfig and run with nodemon on port 3000.
Learn promise, async/await, and try/catch in JavaScript, with hands-on examples of creating promises, resolving or rejecting based on conditions, and chaining then and catch for dependent operations.
Use the spread operator to copy, merge, and modify objects and arrays with the three dots. Gain efficiency by appending data, overriding fields, and combining data structures in JavaScript.
Master routing fundamentals in node js by defining endpoints with get, post, put, patch, and delete, handling requests and responses, and testing with postman on routes like /api/user/login.
Practice middleware basics by learning how functions guard routes, use app.use, and next to control access in a food delivery app, including pre and post middleware.
connect your node.js server to mongodb using mongoose, install dependencies including types for typescript, and configure mongodb atlas with a uri, handling password encoding and ip whitelisting.
Create an environments folder with dev and prod environment files, and a function that returns the correct db uri based on process.env, enabling production and development switching.
Structure a scalable NodeJS project by separating routes, controllers, and configuration into an MVC-inspired architecture, connect to MongoDB, and apply the single-responsibility principle for maintainable code.
Learn to implement robust error handling in a nodejs mvc app by adding a 404 not found handler, using middleware, and wiring dynamic error responses.
learn how to access request variables using query parameters and request bodies across get, post, put, and patch methods, with body-parser and urlencoded options for form data.
Define a user schema with mongoose in a Node.js project, create a users collection, and save user data (email and password) to MongoDB Atlas, validated via Postman.
Explore implementing request validation with express validator for signup fields (name, email, password), and understand http error status codes from 100 through 500 with practical error handling.
Master user authentication in a NodeJS project by building and testing APIs with Postman, implementing email verification with SendGrid, bcrypt password encryption, JWT authentication, and password reset plus profile updates.
Learn to create a new user via post /api/user/signup in a node.js app, validating name, phone, email, type, status, and password, and test with Postman.
Understand what CORS is and why it's needed. Implement CORS in a Node.js app to enable cross-origin requests from front-end apps such as Angular, React, and Ionic.
Refactor your Node.js API code to use async/await with a try/catch error pattern, improving readability and flow while integrating course-related types for safer data handling.
Learn how to implement email verification for users by adding an email verified flag, OTP-based verification tokens with expiry, and a patch-based route to confirm verification.
Master NodeJS APIs to send email verifications using SendGrid or Gmail, leveraging NodeMailer with SendGrid transport, and enforce unique emails via a custom validator and OTP emails.
Learn to create an API to resend verification emails by updating the verification token and time, sending the email via Gmail or SendGrid, and handling responses.
Learn to securely encrypt passwords with bcrypt by generating salt or using salt rounds, hash the plaintext, and verify passwords during sign up and login.
Explore how JSON Web Tokens enable secure authentication by encoding header, payload, and signature, and learn how to use bearer tokens in authorization headers for protected requests.
Implement JSON web token authentication in a Node.js app by signing and verifying tokens with a secret key and expiry, enabling secure signup and login with payload data.
Protect backend APIs by implementing a global auth middleware that verifies JWT tokens in request headers, authorizing users and enabling secure actions like email verification and token resending.
Improve the auth flow by treating the six-digit otp as a string to avoid loss of leading zeros, ensuring reliable email verification, signup, login checks, and token expiry handling.
Develop and test reset password APIs in NodeJS, using reset token, verification token, OTP, and email verification, with gate routes and Postman testing.
Learn how to optimize a Node.js API by clarifying routes, implementing email verification tokens, and refining JWT handling with audience and issuer, plus middleware authentication.
Fetch and update a user profile via a token-authenticated gate route, retrieving data by user id. Implement patch routes to update phone and profile, with validation and email verification.
Fix minor signup bugs by making reset password token fields optional during user creation, enforce unique emails with clear errors, and balance front end and back end validation.
Explore how a food delivery app API works, covering user authentication, admin API, cities in mongodb, restaurant catalogs, geospatial queries, menus, addresses, and orders.
Explore the admin-driven workflow for a food delivery API, defining roles, and enabling creation of restaurants, menus, and drivers to power the ordering system.
Master file uploads for banner images in Node.js using multer, including disk storage, memory storage, and file filters; build a banner model, validator, and admin-protected routes for managing banners.
Refactor the NodeJS api to optimize banners by switching status to boolean and streamlining the banner router, using MongoDB queries like insert many and find, tested with Postman.
Insert cities in MongoDB by creating a cities collection and adding documents with name, latitude, longitude, and a status. Include createdAt and updatedAt for tracking and enable city-based filtering.
Build city, restaurant, and category schemas in MongoDB and link them to users. Expose routes with validators and controllers to fetch cities and insert restaurants and categories, including geojson location.
Master geospatial queries in MongoDB to fetch nearby restaurants using GeoJSON location points, 2D sphere indexing, and radius conversions between miles and kilometers.
Build and link restaurant menus by creating admin APIs to fetch active restaurants, assign categories, and add items, while using MongoDB populate() and projection to optimize data.
Learn to build a menu items API endpoint that fetches a restaurant's categories and items by restaurant id, with authentication tests, validation, and testing via Postman.
Learn to build a complete user addresses api in Node.js, implementing create, read, update, delete operations with authentication, address schema, validation, and duplicate checks, plus limited and by-id fetch endpoints.
Learn to place an order and fetch a user's orders with a Node.js API, enforcing single-restaurant carts, and using models, validators, controllers, and Postman tests.
Explore the module by making the banner clickable, implementing a dot env file for security, and reviewing the attached source code to understand optimization for Node.js APIs.
Learn to make banners clickable by adding an optional restaurant id to the banner schema in Node.js and MongoDB, enabling backend support for front end redirection to a restaurant menu.
Implement and configure a dotenv file in a Node.js application to securely manage environment variables, ports, and other config for development and production.
We introduce pagination in this module by applying it to user addresses, user orders, and restaurant lists, with the source code available at the end.
Implement pagination for user addresses in a Node.js API by applying per page limits, skip/limit, and page navigation (current, previous, next, total pages) to deliver filtered results.
Implement pagination for the user orders list in a NodeJS/MongoDB API, using per-page and current-page controls, skip/limit, and total pages with previous and next navigation, tested via Postman.
Implement and verify restaurant list pagination with nearby and search filters, using skip and limit, per-page settings, and page counts to yield accurate total pages.
Master refresh token authentication by creating and auto-generating refresh and access tokens, generating random secret keys, and preparing an api for token interception.
Create a refresh token and implement dynamic JWT signing with audience, issuer, and user id, while configuring access and refresh token expiry and environment-based secret keys.
Generate new access and refresh tokens automatically when the access token expires using a refresh token via a refresh endpoint. Implement validator checks and JWT verification to secure token refresh.
Learn to blacklist refresh tokens with Redis, optimize user controller to expose needed fields, set up Redis on Mac OS and Windows, and enable logout token removal with multi-device support.
Understand why blacklist refresh tokens is necessary and learn to set up Redis on macOS using Homebrew, start the server, and use Redis Commander for visualization.
Set up Redis on Windows using WSL2 and Ubuntu, install Redis Commander for a GUI, and learn basic key-value operations with TTL expiry.
Connect your Node.js backend to a local Redis instance by creating a Redis client wrapper, configuring via environment variables, and implementing set, get, and delete operations with proper error handling.
Connect nodejs with a reddish enterprise server using a free cloud setup. Use reddish commander to access credentials, host, and port URLs, and test set and get operations.
optimize the Node.js user controller to send only required user data using projections, removing passwords, tokens, and unnecessary fields, and secure handling of identifiers.
learn how to blacklist refresh tokens with Redis, using JWT to issue and verify refresh and access tokens, and implement robust error handling and expiry control.
Learn to securely log out users by deleting their refresh token from redis, verify refresh tokens with jwt, and use a dedicated logout route and decode refresh token middleware.
Learn to manage refresh tokens in Redis for the same account across multiple devices by using a unique device ID to create per-device keys, preventing token overwrites.
Fix the current date time zone and port number issue in Node.js and repair restaurant, order, and address controllers to handle empty records, while applying a module-wide optimization feature.
Fix the current date time zone in the order model by implementing a central date helper and using environment variables. Demonstrates testing with Postman, and default port handling.
Optimize the restaurant controller to return an empty array when no records exist, with zero total pages and a null next page. Validate error handling via postman.
Fix the no record found error in the order controller by adding a document count check and returning the same response when no orders exist.
Optimize the address controller to gracefully handle no-record scenarios. Implement a no-count check, return an empty array, zero total pages, and null next page, then verify with postman.
Explore MongoDB indexing concepts, uncover different indexing types, and learn how geospatial indexing supports restaurant searches.
Understand how indexing in MongoDB speeds queries, when to apply it, and its space trade-offs, illustrated by restaurant name lookups and find one versus find.
Explore the main MongoDB indexing types—single field, compound, multi-key, geospatial (2d and 2d sphere), text, and hashed—plus index properties like background, unique, partial, and sparse.
Apply geospatial indexing in a restaurant API using 2d sphere, nearSphere, geoWithin, and geoNear to fetch nearby restaurants, compute distances, and leverage aggregation for results.
Your All-in-One Masterclass to Becoming a NodeJS & ExpressJS Expert
Tired of fragmented tutorials and incomplete lessons? This course is your definitive, step-by-step path to mastering Node.js and Express by building two production-ready backend applications—a scalable Food Delivery API and a robust e-Commerce API.
By the end of this course, you won’t just write code—you’ll understand the why behind every solution, and you’ll have a portfolio featuring two impressive real-world projects that demonstrate your expertise to potential employers and clients.
What You Will Master
Comprehensive A-to-Z Learning: Start from scratch and build complete, deployable backend APIs with Node.js, Express, and MongoDB.
Modern M.E.N. Stack: Become proficient with Node.js, Express, MongoDB, and Redis for advanced backend development.
Advanced Security: Implement cutting-edge JSON Web Token (JWT) authentication and secure token blacklisting with Redis—skills that are essential for professional backend developers.
Payments & Monetization: Integrate Stripe for secure and seamless payment processing, perfect for e-commerce and delivery platforms.
Performance & Scalability: Optimize your applications with MongoDB indexing and Node.js clustering, boosting performance for large-scale use.
Professional Deployment: Learn how to deploy your applications from local development to live production on Heroku, covering the entire development lifecycle.
Bonus Features: Master Cron Jobs, regular expressions, geospatial queries, virtual fields, and more to build advanced and scalable applications.
Why Enroll?
The demand for expert Node.js developers is skyrocketing. This course is an investment in your future—it’s not just video tutorials, but a comprehensive journey to build a job-ready skillset and portfolio that sets you apart in the competitive market. Whether you want to accelerate your career, start freelancing, or build your own products, this masterclass provides everything you need.
About the Instructor
My name is Nikhil Agarwal, a professional full-stack developer and the creator of multiple 5-star rated Udemy courses. I believe the best way to learn is by building real projects. As the author of the bestselling “Master Ionic 8+: Build Food Delivery App from Beginner to Advanced”, I bring years of industry experience to help you create market-ready applications that impress employers and clients alike.
This is your moment to transform your backend skills and career. Enroll now and start building powerful, scalable APIs today!