Что такое Node.js?

«Что такое Node.js?» — вопрос из категории Node.js Core, который задают на 26% собеседований Node.js Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Node.js — это среда выполнения JavaScript, построенная на движке V8 Chrome. Она позволяет выполнять JavaScript-код вне браузера, на стороне сервера. Её ключевая архитектурная особенность — событийно-ориентированная, неблокирующая модель ввода-вывода, что делает её исключительно эффективной для создания масштабируемых сетевых приложений.

Основные характеристики:

  • Асинхронность и неблокирующий ввод-вывод: Операции, такие как чтение файлов или запросы к БД, не блокируют основной поток выполнения, что позволяет обрабатывать тысячи одновременных соединений.
  • Однопоточная событийная петля (Event Loop): Управляет всеми асинхронными операциями. Для CPU-интенсивных задач можно использовать Worker Threads.
  • NPM (Node Package Manager): Крупнейшая в мире экосистема библиотек с открытым исходным кодом, поставляемая вместе с Node.js.

Пример простого HTTP-сервера:

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Hello from Node.js Server!');
});

server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

Типичные сферы применения: создание бэкенд-API (REST, GraphQL), микросервисов, приложений реального времени (с использованием Socket.io), инструментов командной строки (CLI) и серверов рендеринга (SSR).