Node.js Tutorial
Learn Node.js step by step through 89 structured lessons. The course starts with essential concepts and progresses toward practical, advanced topics, with explanations, syntax, examples, common mistakes and exercises you can try yourself.
- Level: Beginner to advanced
- Format: 89 free, self-paced lessons
- Best for: Students, career changers and developers refreshing their skills
What You Will Learn
This learning path covers the following areas in curriculum order:
- Node.js Tutorial
- Node.js Modules
- Node.js npm
- Node.js Globals
- Node.js Asynchronous
- Node.js Events
- Node.js File System
- Node.js Streams and Buffers
- Node.js HTTP
- Node.js Express
- Node.js Databases
- Node.js Security
- Node.js Errors and Testing
- Node.js Advanced
- Node.js Deployment
Who This Course Is For
This tutorial is suitable for complete beginners as well as learners who already know some programming and want a structured reference. Start from the first lesson if the subject is new to you. Experienced learners can use the curriculum below to jump directly to a specific concept.
How to Use This Tutorial
- Read each lesson in curriculum order and run every example yourself.
- Change the examples to test your understanding instead of only copying them.
- Complete the exercises and review the common-mistake sections before moving on.
- Bookmark this course page so you can return to the complete lesson index.
Course Contents
Node.js Tutorial
Node.js Modules
- Node.js Modules
- CommonJS require and module.exports
- ES Modules in Node.js
- CommonJS vs ES Modules
- Module Resolution and node_modules
- Node.js Built-in Modules
Node.js npm
- Node.js npm
- The package.json File
- Installing and Managing Packages
- Semantic Versioning and package-lock.json
- npm Scripts
- npx and Global Packages
Node.js Globals
- Node.js Global Objects
- The process Object
- Environment Variables
- Command Line Arguments
- The console Module
- Node.js Timers
Node.js Asynchronous
- Asynchronous Programming in Node.js
- Callbacks and the Error-First Pattern
- Promises in Node.js
- async and await
- The Event Loop in Depth
- process.nextTick and Microtasks
- util.promisify and Callback Interop
Node.js Events
Node.js File System
- Node.js File System (fs)
- Reading Files
- Writing and Appending Files
- The fs Promises API
- Working with Directories
- File Stats and Permissions
- Watching Files for Changes
Node.js Streams and Buffers
- The path Module
- The os Module
- The url Module and URL API
- Node.js Buffers
- Node.js Streams
- Readable and Writable Streams
- Pipes and Transform Streams
Node.js HTTP
- The Node.js HTTP Module
- Creating a Web Server
- Handling Requests and Routes
- Request and Response Objects
- Serving Static Files
- Making HTTP Requests with fetch
- Working with JSON APIs
Node.js Express
- Express Introduction
- Express Routing
- Express Middleware
- Parsing Request Bodies and Queries
- Express Error Handling
- Building a REST API
- Express Router and Project Structure
- Static Files and Templates in Express
Node.js Databases
Node.js Security
- Node.js Security Basics
- Password Hashing with bcrypt
- Authentication with JWT
- Sessions and Cookies
- Input Validation and Sanitization
Node.js Errors and Testing
- Error Handling in Node.js
- Custom Error Classes
- Debugging Node.js
- Testing with the Built-in Test Runner
- Logging in Node.js
- Uncaught Exceptions and Graceful Shutdown
Node.js Advanced
- Child Processes
- The Cluster Module
- Worker Threads
- Performance and Profiling
- Memory Management and Garbage Collection
- The Crypto Module
Node.js Deployment
- Building a Command Line Tool
- WebSockets in Node.js
- Deploying a Node.js Application
- Node.js Best Practices
- Node.js Built-in Modules Reference
Frequently Asked Questions
Is this Node.js tutorial free?
Yes. The lessons listed on this page are free to read and can be completed at your own pace.
Do I need previous experience?
No previous experience is required for the introductory lessons. Some advanced modules are easier if you first complete the fundamentals in this course.
How should I practise?
Type and run the examples, deliberately change their inputs, predict the result before execution and build a small project after completing each major section.
