глава 00

Что такое Node.js

Раньше JavaScript жил только в браузере: он оживлял кнопки, формы и анимации на сайтах. Сам по себе, без браузера, запустить JS было нельзя.

Node.js это изменил. Это среда выполнения (по-английски runtime), которая запускает JavaScript где угодно: на сервере в дата-центре или прямо на вашем ноутбуке. Внутри Node.js стоит тот же движок V8, что и в браузере Chrome, плюс набор инструментов для работы с файлами, сетью и операционной системой.

Зачем это нужно

Когда JavaScript вышел за пределы браузера, на нём стало можно писать почти всё:

Бэкенд
Серверы и API для сайтов, мобильных приложений, чат-ботов.
Скрипты
Маленькие программы: разобрать файлы, выгрузить данные, автоматизировать рутину.
Инструменты
Сборщики, линтеры, CLI-утилиты. Почти весь фронтенд-тулинг написан на Node.js.

Для вайб-кодинга это особенно удобно: один и тот же язык (JavaScript или TypeScript) и в браузере, и на сервере. Не нужно держать в голове два разных языка.

Событийная модель и асинхронность простыми словами

У Node.js есть особенность, из-за которой его и любят для веба. Объясним без терминов.

Представьте официанта в кафе. Плохой официант принял заказ у первого столика и стоит у кухни, ждёт, пока приготовят блюдо. Все остальные столики ждут его и злятся.

Хороший официант принял заказ, отдал на кухню и сразу пошёл к следующему столику. Когда блюдо готово, кухня его зовёт - он относит его и идёт дальше. Один человек обслуживает весь зал.

Так и работает Node.js. Когда программа отправляет запрос (например, в базу данных) и ждёт ответа, Node не стоит без дела - он берётся за другие задачи. Когда ответ придёт, Node к нему вернётся. Это называется асинхронность, а механизм, который раздаёт и подхватывает задачи, - событийный цикл (event loop).

Из-за этого один процесс Node.js легко держит тысячи одновременных соединений. Для веб-сервиса, где люди постоянно что-то запрашивают, это идеально.