Topics Express.js Framework Express.js Basics
beginner 16 min read

Express.js Basics

Setting up Express, routing, middleware, and request/response handling.

Getting Started with Express

// Install: npm install express\n\nconst express = require('express');\nconst app = express();\n\napp.get('/', (req, res) => {\n  res.send('Hello from Express!');\n});\n\napp.get('/api/users', (req, res) => {\n  res.json([{ id: 1, name: 'Alice' }]);\n});\n\n// Route parameters\napp.get('/api/users/:id', (req, res) => {\n  res.json({ id: req.params.id });\n});\n\n// Query parameters\napp.get('/search', (req, res) => {\n  const { q, page = 1 } = req.query;\n  res.send(`Searching for ${q}, page ${page}`);\n});\n\napp.listen(3000);

Middleware

// Built-in middleware\napp.use(express.json());             // Parse JSON bodies\napp.use(express.urlencoded({ extended: true })); // Parse form data\napp.use(express.static('public'));   // Serve static files\n\n// Custom middleware\napp.use((req, res, next) => {\n  console.log(`${req.method} ${req.url}`);\n  next();\n});\n\n// Route-specific middleware\nconst authenticate = (req, res, next) => {\n  const token = req.headers.authorization;\n  if (!token) return res.status(401).json({ error: 'Unauthorized' });\n  req.user = { id: 1 };\n  next();\n};\n\napp.get('/api/profile', authenticate, (req, res) => {\n  res.json({ user: req.user });\n});

Examples

const express = require('express');

const app = express();
app.use(express.json());

// Request logger
app.use((req, res, next) => {
  const start = Date.now();
  res.on('finish', () => {
    const ms = Date.now() - start;
    console.log(`${req.method} ${req.url} ${res.statusCode} ${ms}ms`);
  });
  next();
});

app.get('/', (req, res) => res.json({ message: 'Express API' }));

app.get('/api/hello/:name', (req, res) => {
  res.json({ greeting: `Hello, ${req.params.name}!` });
});

// Error handling (must have 4 params)
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({ error: 'Internal Server Error' });
});

app.listen(3000, () => console.log('Express server on port 3000'));

Your Notes

Sign in to take notes for this lesson.

Discussion

Sign in to join the discussion.

Flashcards

Sign in to create flashcards.