Node.js
Node.js runtime fundamentals, async IO, modules, streams, and backend coding exercises.
Study order: Runtime → Event loop → Modules → Files → Events → Streams → HTTP → Errors → Exercises
- What is Node.js? — What Node.js is, why it exists, and when to use it.
- Node.js vs Browser JavaScript — Same language, different runtime capabilities and APIs.
- Node.js Event Loop and Non-blocking IO — libuv, event loop phases, microtasks, macrotasks, and callback priority in Node.js.
- Modules and NPM — CommonJS, ES Modules, npm packages, and project dependencies.
- File System and Path — Read, write, and resolve files safely in Node.js.
- Events and EventEmitter — Build event-driven code using Node.js EventEmitter.
- Streams and Buffers — Process large data without loading everything into memory.
- HTTP Server in Node.js — Create a basic server without Express to understand the foundation.
- Environment Variables and process — Use process.env, argv, exit codes, and runtime metadata.
- Node.js Error Handling — Handle sync errors, async errors, callbacks, and rejected promises.
- Worker Threads — Run CPU-heavy JavaScript work off the main thread.
- Child Processes — Run external commands or separate programs from Node.js.
- Package Versioning — Understand semver, package-lock, dependencies, and devDependencies.
- Node.js Security Basics — Protect secrets, dependencies, inputs, and runtime configuration.
- HTTP Server without Express — Build a tiny router with Node.js http module.
- Build a CLI Tool — Read command line arguments and create a useful script.
- File Upload with Streams — Use streams to handle large files efficiently.
- Custom EventEmitter — Implement a small event emitter from scratch.
- In-memory Rate Limiter — Limit repeated requests using Map and time windows.