Backend essentialsIntermediate8h

Node & the runtime.

The server-side JS runtime and the event loop.

What is the Node runtime?

Node runs JavaScript on the server, with the same language you use in the browser but a different set of APIs — files, networking, processes — and a single-threaded event loop that handles many requests without blocking. It is the server half of the TypeScript full-stack stack.

Why it matters

Running JavaScript on the server is what lets full-stack developers use one language end to end. Understanding the event loop and async I/O is what keeps your API responsive under load. Everything in the backend and seam stages assumes you are comfortable here.

What to learn

  • The event loop and non-blocking I/O
  • Modules and the difference from browser JS
  • Core APIs: files, HTTP, environment, process
  • async/await on the server
  • A web framework (Express, Fastify, Hono)
  • Reading config from environment variables
  • Why blocking the event loop is dangerous

Common pitfall

Doing blocking or heavy synchronous work in a request handler — a big synchronous loop, a huge JSON parse — which freezes the single thread and stalls every other request. Keep handlers async and push heavy CPU work elsewhere. This is the most common way a Node API becomes mysteriously slow under load.

Resources

Primary (free):

Practice

Build a tiny API with a framework: a couple of routes returning JSON, reading a config value from an environment variable, all async. Add a deliberately slow synchronous operation and observe it block other requests, then move it off the hot path. Done when handlers stay async and responsive.

Outcomes

  • Explain the event loop and non-blocking I/O.
  • Build routes with a Node web framework.
  • Read config from environment variables.
  • Keep handlers async to avoid blocking the event loop.
Back to Full-Stack roadmap