Node.js lets you run JavaScript on the server side, making it great for building fast, scalable backend applications. π
1οΈβ£ What is Node.js?
Node.js is a runtime built on Chrome's V8 JavaScript engine. It enables running JS outside the browser, mainly for backend development. π₯οΈ
2οΈβ£ Why Use Node.js?
- Fast & non-blocking (asynchronous) β‘
- Huge npm ecosystem π¦
- Same language for frontend & backend π
- Ideal for APIs, real-time apps, microservices π¬
3οΈβ£ Core Concepts:
- Modules: Reusable code blocks (e.g.,
fs, http, custom modules) π§©- Event Loop: Handles async operations β³
- Callbacks & Promises: For non-blocking code π€
4οΈβ£ Basic Server Example:
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello, Node.js!');
}).listen(3000); // Server listening on port 30005οΈβ£ npm (Node Package Manager):
Install libraries like Express, Axios, etc.
npm init
npm install express
6οΈβ£ Express.js (Popular Framework):
const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Hello World!'));
app.listen(3000, () => console.log('Server running on port 3000'));7οΈβ£ Working with JSON & APIs:
app.use(express.json()); // Middleware to parse JSON body
app.post('/data', (req, res) => {
console.log(req.body); // Access JSON data from request body
res.send('Received!');
});
8οΈβ£ File System Module (fs):
const fs = require('fs');
fs.readFile('file.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data); // Content of file.txt
});9οΈβ£ Middleware in Express:
Functions that run before reaching the route handler.
app.use((req, res, next) => {
console.log('Request received at:', new Date());
next(); // Pass control to the next middleware/route handler
});π Real-World Use Cases:
- REST APIs π
- Real-time apps (chat, notifications) π¬
- Microservices ποΈ
- Backend for web/mobile apps π±
π‘ Tip: Once you're confident, explore MongoDB, JWT auth, and deployment with platforms like Vercel or Render.
π¬ Tap β€οΈ for more!