Node.js
#Topics
Beginner
| Category | Topic | Description |
|---|---|---|
| Basics | What is Node.js | Runtime, V8 engine, event-driven architecture |
| Basics | Node.js vs Browser JS | Differences in environment and APIs |
| Setup | Installing Node.js | Node, npm, npx |
| Setup | Running Node Programs | node index.js, REPL |
| Core Concepts | Event Loop | Call stack, callback queue |
| Core Concepts | Single-threaded Model | Non-blocking I/O |
| Modules | CommonJS Modules | require, module.exports |
| Modules | ES Modules | import, export |
| Core APIs | fs Module | Read/write files |
| Core APIs | path Module | File path handling |
| Core APIs | os Module | System info |
| Core APIs | process | Environment variables, argv |
| Async | Callbacks | Async basics |
| Async | Promises | .then, .catch |
| Async | Async/Await | Modern async syntax |
| Networking | HTTP Module | Create basic server |
| Tools | npm Basics | Install dependencies |
| Debugging | Console & Debugging | console.log, Node inspector |
Intermediate
| Category | Topic | Description |
|---|---|---|
| Architecture | MVC Pattern | Code organization |
| Web | Express.js | Routing, middleware |
| Web | REST APIs | CRUD, status codes |
| Middleware | Custom Middleware | Request lifecycle |
| Async | Error Handling | Async error patterns |
| Security | Environment Variables | dotenv, config separation |
| Databases | MongoDB Integration | Mongoose |
| Databases | SQL Integration | PostgreSQL, MySQL |
| Auth | Authentication | JWT, sessions |
| Auth | Authorization | RBAC, permissions |
| Performance | Streams | Readable, writable streams |
| Performance | Buffers | Binary data handling |
| File Handling | File Uploads | Multer |
| Validation | Input Validation | Joi, Zod |
| Logging | Logging Systems | Winston, Pino |
| Testing | Unit Testing | Jest, Mocha |
| Testing | API Testing | Supertest |
| Tooling | Nodemon | Auto-reload |
| Tooling | ESLint & Prettier | Code quality |
| Deployment | PM2 | Process manager |
Advanced
| Category | Topic | Description |
|---|---|---|
| Internals | Node.js Internals | Libuv, V8 internals |
| Internals | Event Loop Phases | Timers, I/O, check |
| Performance | Clustering | Multi-core usage |
| Performance | Worker Threads | CPU-bound tasks |
| Performance | Memory Management | Heap, garbage collection |
| Security | Advanced Security | CSRF, XSS, SSRF |
| Security | OWASP Top 10 | Node-specific risks |
| Architecture | Microservices | Service decomposition |
| Architecture | Monorepos | Turborepo, Nx |
| Architecture | Message Queues | RabbitMQ, Kafka |
| Networking | WebSockets | Real-time communication |
| Networking | gRPC | High-performance RPC |
| Scalability | Load Balancing | Nginx, HAProxy |
| Observability | Monitoring | Prometheus, Grafana |
| Observability | Tracing | OpenTelemetry |
| Databases | Transactions | ACID, isolation levels |
| Databases | Connection Pooling | Scaling DB access |
| Build | Native Addons | C++ addons |
| Build | Custom CLI Tools | commander, yargs |
| Deployment | Docker | Containerization |
| Deployment | Kubernetes | Orchestration |
| Edge | Serverless | AWS Lambda |
| Edge | Edge Functions | Low-latency compute |