Duration: 3 Days

Description

This 3-day course provides a hands-on, practical introduction to building scalable server-side applications with Node.js. Participants will learn how to create RESTful APIs, manage file systems, handle asynchronous operations, and build modular applications using modern JavaScript practices. The course includes working with core Node modules, Express.js, databases, and external APIs, with a strong focus on clean code, testability, and performance. By the end, learners will have built and deployed real-world services using today’s Node.js standards.

Audience

This course is designed for web developers, backend engineers, or full-stack developers who are new to Node.js or want to solidify their skills with modern backend practices. It’s ideal for developers transitioning from front-end work or other backend platforms who want to learn how to build scalable services using JavaScript. Technical team members involved in building or maintaining APIs will also benefit.

Objectives

  • Use Node.js to build and run scalable backend applications
  • Organize projects using modules and environment variables
  • Create and test HTTP servers and RESTful APIs
  • Handle files, streams, and events in a non-blocking way
  • Build and route Express applications with middleware
  • Connect to and query databases such as MongoDB
  • Consume and integrate external web services using async/await
  • Write modular, testable code with modern tooling
  • Understand Node’s event loop, concurrency, and scaling options

Prerequisites

Participants should have experience with JavaScript fundamentals, including functions, objects, and ES6+ syntax such as let/const, arrow functions, and async/await. Familiarity with basic HTML/CSS and working in a command-line environment is expected. No prior experience with Node.js or backend development is required, but helpful.

Course Outline

Module 1: Foundation

  • The Node.js Framework
  • Working with Node.js
  • Overview of Node’s Event-Driven Architecture
  • Using the Node.js REPL

Module 2: Node Projects

  • Node Package Manager
  • Requiring and Defining Modules
  • Project Automation with npm Scripts
  • Working with ES Modules
  • Managing Environment Variables

Module 3: Web Servers

  • Build an HTTP Server
  • Process Query Settings
  • RESTful Services
  • Responding with JSON Status Codes Using the http Module
  • Introduction to Middleware Pattern

Module 4: File System

  • File System Information
  • Working with File Data
  • Project Structure
  • Using fs.promises and async/await for File Operation
  • Handling Paths Safely with the path Module

Module 5: Buffers, Streams, and Events

  • Buffers
  • Streams
  • Events
  • Combining Streams with Events
  • Using stream.pipeline() and fs.createReadStream() for Performance

Module 6: Modules

  • Creating Modules
  • Testing Modules
  • Publishing Packages
  • Writing Modules Using ES Module Syntax
  • Testing Modules Using Jest or Vitest with npm test Scripts
  • Best Practices for Documenting and Versioning in package.json

Module 7: Express

  • Templates
  • Routing
  • Middleware and Data
  • Handling req.body with express.json() Middleware
  • Organizing Routes and Middleware Using Express Router
  • Introduction to Error-Handling Middleware

Module 8: Data Sources

  • Database Technology
  • Interfacing to Databases
  • Consuming Web Services
  • Connecting to a Database with Mongoose (MongoDB)
  • Using .env to manage connection secrets
  • Fetching External APIs Using fetch or axios with async/await

Module 9: Asynchronous

  • Callbacks and Closures
  • Node.js Threads and Scaling
  • Promises and async/await
  • Concurrency and Performance
  • Overview of the Event Loop, Microtasks, and Worker Threads