
===========================
  Node.js Developer Guide
===========================

Node.js Overview:
-----------------
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It allows developers to run JavaScript on the server side to build scalable network applications.

Key Features:
-------------
- Asynchronous and Event-Driven: All APIs of Node.js library are asynchronous and non-blocking.
- Fast Execution: Built on Google Chrome’s V8 JavaScript Engine for fast code execution.
- Single Programming Language: Allows full stack development using JavaScript.
- NPM Ecosystem: Includes a vast collection of open-source packages via Node Package Manager (NPM).

Core Modules:
-------------
- HTTP: Used to build HTTP server and client.
- FS: File system module for interacting with the file system.
- Path: Utilities for working with file and directory paths.
- Events: Enables working with events and event-driven programming.
- OS: Provides information about the operating system.

Popular Frameworks:
-------------------
- Express.js: Minimalist web framework for Node.js.
- Koa.js: Modern framework created by the same team behind Express.
- NestJS: A progressive Node.js framework for building efficient and scalable server-side applications.

Common Use Cases:
-----------------
- RESTful API development
- Real-time applications (e.g., chat apps)
- Microservices
- Server-side rendering
- CLI tools

Basic Example (HTTP Server):
----------------------------
const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!');
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

Useful Commands:
----------------
- node app.js         # Run a Node.js file
- npm init            # Initialize a new Node.js project
- npm install <pkg>   # Install a package
- npm run <script>    # Run a script defined in package.json

Resources:
----------
- https://nodejs.org/en/docs/
- https://expressjs.com/
- https://www.npmjs.com/

