Back to Modules

Express.js Tutorial

Master Express.js fundamentals with our comprehensive tutorial. Learn through examples and hands-on practice.

Video Tutorial

Introduction to Express.js Concepts

Express.js is a minimal and flexible Node.js web application framework. Let's explore core JavaScript concepts used in Express applications.

Examples:

// Express.js route handler
const express = require('express');
const app = express();

// Route handler function
app.get('/', (req, res) => {
  res.send('Hello from Express!');
});

// Start server
app.listen(3000, () => {
  console.log('Server running on port 3000');
});

Understanding Express.js route handler concepts with simulation

Express.js Routing Patterns

Routing determines how your application responds to client requests. Let's simulate routing logic.

Examples:

// Express.js Routing
const express = require('express');
const app = express();

// Mock users database
const users = [
  { id: 1, name: 'John Doe', email: 'john@example.com' },
  { id: 2, name: 'Jane Smith', email: 'jane@example.com' },
  { id: 3, name: 'Bob Johnson', email: 'bob@example.com' }
];

// GET all users
app.get('/users', (req, res) => {
  res.json(users);
});

// GET user by ID
app.get('/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (user) {
    res.json(user);
  } else {
    res.status(404).json({ message: 'User not found' });
  }
});

// POST create user
app.post('/users', (req, res) => {
  const newUser = { id: users.length + 1, ...req.body };
  users.push(newUser);
  res.status(201).json(newUser);
});

app.listen(3000);

Simulating different route handlers and HTTP methods

Middleware Concept

Middleware functions process requests before they reach route handlers. Let's understand the middleware chain.

Examples:

// Express.js Middleware
const express = require('express');
const app = express();

// Middleware 1: Logger
app.use((req, res, next) => {
  console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
  req.timestamp = Date.now();
  next();
});

// Middleware 2: Authentication
const authMiddleware = (req, res, next) => {
  // Check authentication
  req.authenticated = true;
  next();
};

app.use(authMiddleware);

// Middleware 3: Body Parser
app.use(express.json());

// Route handler
app.post('/api/users', (req, res) => {
  const timeTaken = Date.now() - req.timestamp;
  res.json({
    message: 'Request processed',
    timeTaken,
    authenticated: req.authenticated,
    data: req.body
  });
});

app.listen(3000);

Understanding middleware chain execution order