Skip to content
New this month 24 fresh C++, C#, F#, JavaScript, TypeScript and Lua courses just landed. Browse new releases Use code WELCOME10 for 10% off your first order · 14-day refund
Web Development Intermediate

Node.js Fundamentals: Build REST APIs with Express and Fastify

Server-side JavaScript done properly, from the module system to a deployed HTTP service.

15 students

MH Created by Marcus Hale

  • Last updated August 2026
  • English
  • 14h 8m of material
  • 106 lessons

What you will learn

8 concrete outcomes

Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.

  • Explain the Node event loop phases and why a blocking call harms every request
  • Use ES modules, streams, buffers and worker threads deliberately rather than by accident
  • Build the same REST API in Express and Fastify and articulate the trade-offs
  • Validate every request boundary with Zod and return consistent error payloads
  • Query PostgreSQL with pooling, transactions and versioned migrations
  • Implement session and JWT authentication with secure cookie and token handling
  • Add structured logging, graceful shutdown and health endpoints
  • Containerise and load test the service, then optimise from measurements

Course curriculum

8 modules · 106 lessons · 14h 8m of material

16 lessons running 2h 08m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

15 lessons running 1h 58m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

14 lessons running 1h 52m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

13 lessons running 1h 42m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

15 lessons running 2h 00m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

12 lessons running 1h 34m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

13 lessons running 1h 44m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

8 lessons running 1h 04m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

8 modules · 106 lessons

14h 8m total length

Requirements

Short list, and deliberately so. If you meet these you can start today.

  • Solid JavaScript, including promises and async and await
  • Node 20 or newer, a container runtime and a terminal you are comfortable in
  • Basic familiarity with HTTP and SQL

About this course

Node is easy to start and easy to get wrong. A single blocking call stalls every request. An unhandled rejection takes the process down. Configuration ends up scattered across a dozen files. This course teaches Node the way a backend team needs it, with both Express and Fastify built side by side so you can see what the framework contributes and what it does not.

The first modules cover the runtime itself: ES modules versus CommonJS, the event loop phases, streams and backpressure, buffers, the file system and child processes, worker threads for CPU-bound work, and the built-in test runner. You will measure the difference between a blocking and a non-blocking implementation of the same endpoint rather than taking it on faith.

The rest builds a production service: routing, middleware and plugins, request validation with Zod, PostgreSQL access with connection pooling and migrations, sessions and JWT authentication, file uploads streamed to disk, background jobs with a queue, structured logging with Pino, graceful shutdown, and a multi-stage Docker build. Load testing with autocannon closes the loop by showing which changes actually moved throughput.

Frequently asked questions

Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.

Neither dogmatically. You build the same API twice and compare routing, validation, plugin encapsulation and throughput, then decide with your own numbers.

The main track is JavaScript with JSDoc types. A supplementary module shows the TypeScript conversion for teams that want it, and the repository includes both branches.

No. Deployment is demonstrated with Docker Compose on a single host, and the checklist translates directly to any container platform you later use.

Checkout is handled on our provider's secure payment page. The moment your payment clears we email your personal access link and access code to the address you used at checkout, and the same link appears in your account library. There is nothing to install and nothing to wait for.

Email misteryjj100@gmail.com within 14 days of your purchase, quote your order number, and we refund the full amount to your original payment method. No form to fill in and no questions about how much of the course you watched.

What students say

No reviews yet

Nobody has reviewed this course yet, so there is no score to show. Buy it, work through it, and your review could be the one that helps the next developer decide.

Your instructor

MH

Marcus Hale

Web engineer and JavaScript educator

  • 259 students taught
  • 12 courses published
  • 4.7 instructor rating
  • JavaScript
  • TypeScript
  • React
  • Node.js

Marcus has shipped front ends for two ad-tech startups and one very large retailer, which taught him more about performance budgets than any blog post could. He teaches JavaScript and TypeScript from the runtime up — event loop first, framework second — then follows the same code through Node on the server side. Every one of his courses ends with a deployed application rather than a folder of exercises. He writes a weekly newsletter on browser performance.

$110 USD

One-time payment · lifetime access

The WisdomCharms dispatch

One useful email a week. No fluff, no spam.

New course releases, discount codes before anyone else, and a short, practical breakdown of one technique — a prompt pattern, a C++ idiom, a TypeScript trick — that you can use the same day.

  • Subscriber-only launch pricing
  • Unsubscribe in one click
  • We never sell your address

By subscribing you agree to our Privacy Policy. Questions? Write to misteryjj100@gmail.com.