Node.js Fundamentals
Node.js is a runtime that executes JavaScript outside a web browser. It combines the V8 engine with operating-system APIs so programs can read files, open network connections, run command-line tools, and serve many concurrent requests.
itWeb development | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Intro
Node.js Fundamentals
Node.js is an open-source, cross-platform JavaScript runtime. It embeds the V8 engine and adds APIs for files, processes, networking, timers, and other operating-system work. A Node.js program runs as an operating-system process, not inside a browser page.
That boundary matters. JavaScript supplies the language: values, functions, objects, promises, and module syntax. Node.js supplies the host environment. Browser objects such as document are absent unless a library creates an equivalent. Node.js instead exposes built-in modules such as node:fs, node:http, and node:stream.
Runtime architecture
A typical Node.js application has four cooperating layers:
- Your JavaScript defines application behavior and callback functions.
- V8 parses and executes JavaScript.
- Node.js bindings and built-in modules expose host capabilities to JavaScript.
- libuv and the operating system coordinate asynchronous I/O, an event loop, and a worker pool for selected operations.
The main JavaScript thread runs one callback at a time. Node.js can still keep many I/O operations in progress because the operating system and libuv perform or monitor work outside that callback. When an operation can continue, its callback becomes eligible to run on the event loop.
This design is concurrency, not automatic parallel JavaScript. A long calculation inside one callback prevents the event loop from starting another callback. Selected APIs use the libuv worker pool, and CPU-bound JavaScript can use worker threads, but ordinary callbacks do not receive a thread each.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://nodejs.org/learn/getting-started/introduction-to-nodejs
Supports
- Node.js definition
- V8 embedding
- cross-platform runtime
- asynchronous I/O
- server use
- https://nodejs.org/en/learn/asynchronous-work/event-loop-timers-and-nexttick
Supports
- Event-loop phases
- callbacks
- timers
- immediates
- poll behavior
- https://nodejs.org/en/learn/asynchronous-work/dont-block-the-event-loop
Supports
- Main event loop
- libuv worker pool
- blocking effects
- bounded per-client work
- https://nodejs.org/api/packages.html
Supports
- Package scope
- type field
- mjs and cjs markers
- exports and main entry points
- https://nodejs.org/api/modules.html
Supports
- CommonJS module behavior
- require
- module exports
- module caching
- https://nodejs.org/api/process.html
Supports
- Process arguments
- environment
- standard streams
- exit behavior
- signals
- uncaught exceptions and rejections
- https://nodejs.org/api/stream.html
Supports
- Readable
- writable
- duplex
- transform streams
- backpressure
- pipeline
- error handling
- https://nodejs.org/api/buffer.html
Supports
- Buffers as byte sequences
- encodings
- binary data behavior
- https://nodejs.org/api/errors.html
Supports
- Synchronous errors
- callback errors
- promise rejections
- EventEmitter error behavior
- https://nodejs.org/api/http.html
Supports
- HTTP server request and response objects as stream interfaces
- headers and response completion
- https://nodejs.org/api/worker_threads.html
Supports
- Parallel JavaScript execution
- worker threads for CPU-intensive work
- transfer and sharing mechanisms
- https://nodejs.org/api/test.html
Supports
- Built-in test runner
- suites
- assertions
- mocks
- coverage and command-line execution
- https://nodejs.org/api/diagnostics_channel.html
Supports
- Named diagnostic channels and subscriber model
- https://nodejs.org/en/about/previous-releases
Supports
- Current
- LTS
- Maintenance and EOL states
- production recommendation
- release dates
- https://nodejs.org/en/about/eol
Supports
- End-of-life security and maintenance consequences
- https://nodejs.org/en/blog/announcements/making-nodejs-downloads-reliable
Supports
- Project beginning in 2009
- 2014 io.js fork
- 2015 merge
- https://openjsf.org/blog/maintainers-should-consider-following-node-js-release-schedule
Supports
- 2015 Node.js Foundation announcement
- Node.js version 4 cadence and LTS history
- https://nodejs.org/download/release/v4.0.0/
Supports
- Node.js version 4 release dated 2015 Sep 8
- https://nodejs.org/en/blog/release/v6.0.0
Supports
- Node.js version 6 release dated 2016 Apr 26 and V8 language support changes
- https://nodejs.org/en/blog/release/v8.0.0
Supports
- Node.js version 8 release dated 2017 May 30 and async hooks introduction
- https://nodejs.org/en/blog/release/v10.0.0
Supports
- Node.js version 10 release dated 2018 Apr 24 and promises-based file APIs
- https://nodejs.org/en/blog/release/v12.11.0
Supports
- Worker threads marked stable in 2019 Sep
- https://nodejs.org/en/blog/release/v14.0.0
Supports
- Node.js version 14 release dated 2020 Apr and ECMAScript module warning removal
- https://github.com/sindresorhus/awesome
Supports
- Discovery of the Awesome Node.js list
- https://github.com/sindresorhus/awesome-nodejs
Supports
- Discovery of Fastify
- Express
- Pino
- Vitest
- Prisma and BullMQ ecosystem projects
- https://fastify.dev/docs/latest/
Supports
- Fastify routing
- validation
- plugins
- logging and module examples
- https://expressjs.com/en/starter/installing.html
Supports
- Express installation
- application setup
- routing and middleware study path
- https://getpino.io/#/docs/api
Supports
- Pino structured logging API and stream-oriented destinations
- https://vitest.dev/guide/
Supports
- Vitest setup
- watch mode
- mocking
- coverage and TypeScript tooling
- https://www.prisma.io/docs/orm
Supports
- Prisma Client
- schema
- migrations and Node.js database access
- https://docs.bullmq.io/
Supports
- Redis-backed queues
- workers
- retries and distributed background work
- https://docs.deno.com/runtime/
Supports
- Deno runtime
- permissions
- built-in tooling and Node compatibility
- https://bun.com/docs/runtime
Supports
- Bun runtime
- JavaScriptCore engine and integrated tooling
- https://docs.npmjs.com/about-npm
Supports
- npm registry
- command-line client and package ecosystem
- https://pnpm.io/motivation
Supports
- pnpm content-addressable storage and npm compatibility
- https://yarnpkg.com/getting-started
Supports
- Yarn package management and workspace workflow
- https://pm2.keymetrics.io/docs/usage/quick-start/
Supports
- PM2 process supervision
- restart
- logs and clustering
- https://docs.aws.amazon.com/lambda/latest/dg/lambda-nodejs.html
Supports
- AWS Lambda Node.js runtimes and handler execution
