Script Valley
REST API Development: Beginner to Production
Building Your First API with Node.js and ExpressLesson 2.2

Express routing — defining GET POST PUT DELETE routes

app.get, app.post, app.put, app.delete, route parameters, req.params, req.body, req.query, res.json, res.status

Express Route Definitions

A route in Express maps an HTTP method and URL pattern to a handler function. The handler receives the request object (req) and response object (res).

Route Parameters and Request Data

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

let users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' }
];

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

// GET single user — :id is a route parameter
app.get('/users/:id', (req, res) => {
  const user = users.find(u => u.id === Number(req.params.id));
  if (!user) return res.status(404).json({ error: 'User not found' });
  res.json(user);
});

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

// DELETE
app.delete('/users/:id', (req, res) => {
  users = users.filter(u => u.id !== Number(req.params.id));
  res.status(204).send();
});

req.params holds URL path variables (:id). req.body holds the parsed JSON body. req.query holds query string values like ?sort=name. Always validate these before using them — never trust input.

Up next

Express Router — organizing routes into separate files

Sign in to track progress