V8 Engine

  • Компилирует JavaScript в машинный код (вместо интерпретации).

  • Обеспечивает высокую производительность.

  • Разрабатывается Google (используется в Chrome).

LibUV

  • Библиотека для асинхронного I/O.

  • Реализует Event Loop и Thread Pool.

  • Поддерживает работу с файлами, сетью, таймерами и др.

Core Modules (Встроенные модули)

Node.js включает стандартные модули, доступные без установки:

  • fs — работа с файловой системой.

  • http / https — создание HTTP-серверов и клиентов.

  • path — управление путями файлов.

  • events — реализация EventEmitter.

  • stream — работа с потоками данных.

  • crypto — криптографические функции.

Event Loop (Цикл событий)

Основа асинхронности в Node.js. Работает по фазам:

  1. Timers — выполнение setTimeout и setInterval.

  2. Pending callbacks — обработка системных событий (например, ошибки сети).

  3. Idle, Prepare — внутренние фазы.

  4. Poll — ожидание новых I/O-событий.

  5. Check — выполнение setImmediate.

  6. Close callbacks — обработка закрытия (например, socket.on('close')).

Thread Pool (Пул потоков)

  • LibUV использует 4 потока (по умолчанию) для тяжелых операций (например, fs.readFile).

  • Можно увеличить через UV_THREADPOOL_SIZE.

Node.js Bindings

  • Позволяют JavaScript взаимодействовать с C/C++ (например, cryptozlib).

NPM (Node Package Manager)

  • Менеджер пакетов для Node.js.

  • Устанавливает библиотеки в node_modules.

🔹 Архитектура Node.js (Single-Threaded + Event-Driven)

  • Однопоточность — основной поток (Event Loop) обрабатывает запросы.

  • Неблокирующий I/O — операции ввода-вывода выполняются асинхронно.

  • Масштабируемость — можно запускать несколько процессов через cluster.

🔹 Пример работы 

const http = require('http');

const server = http.createServer((req, res) => {
  res.end('Hello, Node.js!');
});

server.listen(3000, () => {
  console.log('Server running on port 3000');
});
  1. http.createServer использует модуль http (нативный).

  2. Event Loop ждёт HTTP-запросы.

  3. При получении запроса — вызывается колбэк.

🔹 Плюсы Node.js

✅ Высокая производительность для I/O-задач.
✅ Большая экосистема (npm).
✅ Подходит для real-time приложений (WebSockets).

🔹 Минусы Node.js

❌ Не подходит для CPU-heavy задач (например, видеообработка).
❌ Callback Hell (решается через Promise/async-await).

🔹 Вывод

Node.js эффективен для сетевых приложений благодаря асинхронности и событийной модели. Его структура (V8 + LibUV + Event Loop) делает его быстрым и масштабируемым.