Express.js Cheat Sheet

Quick reference for Express.js — routing, middleware, request/response, error handling, and REST API patterns. All essential Express patterns in one page.

Setup & Basics Routing Middleware Response Methods Error Handling

Setup & Basics

npm init -y && npm i express Initialize project and install Express
const express = require("express") Import Express (CommonJS)
import express from "express" Import Express (ESM)
const app = express() Create Express application
app.listen(3000, () => console.log("Running")) Start server on port 3000
app.set("view engine", "ejs") Set template engine
app.use(express.json()) Parse JSON request bodies
app.use(express.urlencoded({ extended: true })) Parse URL-encoded bodies
app.use(express.static("public")) Serve static files from public/

Routing

app.get("/", (req, res) => res.send("Hello")) Handle GET request
app.post("/users", handler) Handle POST request
app.put("/users/:id", handler) Handle PUT request
app.patch("/users/:id", handler) Handle PATCH request
app.delete("/users/:id", handler) Handle DELETE request
app.all("/api/*", handler) Match all HTTP methods
app.route("/users").get(fn).post(fn) Chain methods on same route
req.params.id Access route parameter :id
req.query.page Access query string ?page=1
req.body.name Access request body field

Middleware

app.use((req, res, next) => { next() }) Global middleware
app.use("/api", authMiddleware) Path-scoped middleware
app.get("/", mw1, mw2, handler) Route-level middleware chain
const router = express.Router() Create modular router
router.use(authMiddleware) Router-level middleware
app.use("/api/v1", router) Mount router at prefix
app.use(cors()) Enable CORS (npm i cors)
app.use(morgan("dev")) Request logging (npm i morgan)
app.use(helmet()) Security headers (npm i helmet)

Response Methods

res.send("Hello") Send string response
res.json({ ok: true }) Send JSON response
res.status(201).json(data) Set status code + JSON
res.redirect("/login") Redirect to URL (302)
res.redirect(301, "/new-url") Permanent redirect (301)
res.render("index", { title: "Home" }) Render template with data
res.sendFile(path.join(__dirname, "file.pdf")) Send file download
res.cookie("token", value, { httpOnly: true }) Set cookie
res.clearCookie("token") Clear cookie

Error Handling

app.use((err, req, res, next) => { res.status(500).json({error: err.message}) }) Error middleware (4 args)
next(new Error("Not found")) Pass error to error handler
app.use("*", (req, res) => res.status(404).json({error: "Not found"})) Catch-all 404 handler
process.on("unhandledRejection", (err) => { console.error(err) }) Handle unhandled promise rejections

Try It Live

Test these patterns with our free API Tester. No signup needed.

Open API Tester →
Step-by-Step Guide

How to Test an API Online

Read Guide →

More Cheat Sheets