Day 74

Express.js Basics

14 min
JavaScript 100 Days

Express.js Node.js ka minimalist web framework hai jo HTTP server banana bahut asaan karta hai. Routes, middleware, JSON APIs — Express se professional backends banate hain.

Express Setup & Routes

Express install karo aur basic routes banao.

app.js
javascript
// npm install express
const express = require("express");
const app = express();

// Middleware
app.use(express.json()); // JSON body parse karo
app.use(express.urlencoded({ extended: true }));

// Sample data
let users = [
  { id: 1, name: "Zohaib", email: "z@test.com" },
  { id: 2, name: "Ali", email: "ali@test.com" }
];

// Routes
app.get("/", (req, res) => {
  res.json({ message: "Welcome to CodingSkillUp API!" });
});

app.get("/users", (req, res) => {
  res.json({ success: true, data: users, count: users.length });
});

app.get("/users/:id", (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ error: "User not found" });
  res.json({ success: true, data: user });
});

app.post("/users", (req, res) => {
  const { name, email } = req.body;
  if (!name || !email) {
    return res.status(400).json({ error: "Name and email required" });
  }
  const user = { id: users.length + 1, name, email };
  users.push(user);
  res.status(201).json({ success: true, data: user });
});

app.put("/users/:id", (req, res) => {
  const idx = users.findIndex(u => u.id === parseInt(req.params.id));
  if (idx === -1) return res.status(404).json({ error: "Not found" });
  users[idx] = { ...users[idx], ...req.body };
  res.json({ success: true, data: users[idx] });
});

app.delete("/users/:id", (req, res) => {
  const idx = users.findIndex(u => u.id === parseInt(req.params.id));
  if (idx === -1) return res.status(404).json({ error: "Not found" });
  users.splice(idx, 1);
  res.json({ success: true, message: "User deleted" });
});

app.listen(3000, () => console.log("Server on port 3000"));

🎯 Practice Challenge

Books REST API banao with Express — full CRUD. Filtering (by author, genre), sorting (by price), aur pagination add karo.