Node.js is a JavaScript runtime—not a framework and not a language. It embeds V8, adds system APIs (file system, networking, child processes), and ships with npm, the largest open-source package registry for reusable libraries.
Core characteristics
- Single-threaded event loop — one main thread handles JS; I/O delegates to the OS and resumes via callbacks/promises
- Non-blocking I/O by default — suited for many concurrent connections when work is I/O-bound
- Same language as the browser — share types, utilities, and sometimes code between client and server
- Huge ecosystem — Express, Fastify, NestJS, Socket.io, build tools (Vite, webpack), and countless utilities
Who uses Node.js?
Netflix, PayPal, LinkedIn, and countless startups use Node for APIs and BFF (backend-for-frontend) layers. It excels at JSON APIs, serverless functions, and tooling—not every workload (heavy CPU crunching may prefer Go, Rust, or worker threads).
Important interview questions and answers
- Q: Is Node.js a programming language?
A: No—it is a runtime that executes JavaScript. The language is ECMAScript; Node adds server APIs and the event loop implementation. - Q: Why was Node created?
A: To bring non-blocking, event-driven I/O to server JavaScript—fewer threads blocked waiting on disk or network compared to classic thread-per-request servers for many workloads. - Q: Node vs Deno/Bun?
A: Deno and Bun are alternative JS runtimes with different security defaults and tooling; Node remains the default for npm compatibility and hiring breadth.
Self-check
- What engine executes JavaScript inside Node?
- Name two things Node is commonly used for.
Interview prep
- Who created Node.js and why?
Ryan Dahl (2009) wanted non-blocking I/O for web servers—JavaScript's event-driven model fit async network work better than thread-per-request models for many I/O-heavy workloads.