Course 06 · Server
Node.js
JavaScript with the door open.
The runtime, modules, packages, the file system and an HTTP API you can call.
0 of 18 lessons finished — nothing yet
The syllabus
18 lessons,
in the order they build on each other.
The runtime
What Node is, how it differs from the browser, versions and running a file.
Modules
ESM and CommonJS, require against import, and module resolution.
npm and package.json
Dependencies, scripts, semantic versioning, the lockfile and auditing.
Files and paths
Reading, writing, checking, joining — sync, callbacks and promises.
Streams and buffers
Handling data too big to hold, piping, and where backpressure comes from.
Asynchronous Node
The event loop on the server, callbacks to promises, and blocking the thread.
An HTTP server
Requests, responses, status codes, headers and routing by hand.
Express
Routes, parameters, JSON bodies, middleware and the order they run in.
A REST API
Resources, the right verbs and status codes, validation and error shapes.
Talking to a database
SQL basics, a client, parameterised queries and never building SQL with strings.
Authentication
Hashing passwords, sessions against tokens, cookies and protecting a route.
Configuration and safety
Environment variables, secrets, input validation, CORS and what never goes in Git.
Errors and logging
Error middleware, operational against programmer errors, and logs you can search.
Testing
The built-in test runner, testing a route, and fixtures that stay honest.
Uploads and static files
Multipart bodies, size limits, serving assets and caching headers.
Processes and the shell
process.argv, exit codes, signals, and writing a small command-line tool.
Performance
Measuring, caching, connection pools and the work that belongs in a queue.
Deploying
A process manager, environment configuration, health checks and zero-downtime restarts.
Keep going
The other courses.
HTML
The document, the elements and the meaning behind them. Everything else on the web is layered on top of this.
CSS
Selectors, the box model, layout with flexbox and grid, and motion that has a reason to move.
JavaScript
Values, functions, the DOM, events and asynchronous work — written so you can debug it later.