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