глава 00
Что такое Node.js
Раньше JavaScript жил только в браузере: он оживлял кнопки, формы и анимации на сайтах. Сам по себе, без браузера, запустить JS было нельзя.
Node.js это изменил. Это среда выполнения (по-английски runtime), которая запускает JavaScript где угодно: на сервере в дата-центре или прямо на вашем ноутбуке. Внутри Node.js стоит тот же движок V8, что и в браузере Chrome, плюс набор инструментов для работы с файлами, сетью и операционной системой.
Зачем это нужно
Когда JavaScript вышел за пределы браузера, на нём стало можно писать почти всё:
Для вайб-кодинга это особенно удобно: один и тот же язык (JavaScript или TypeScript) и в браузере, и на сервере. Не нужно держать в голове два разных языка.
Событийная модель и асинхронность простыми словами
У Node.js есть особенность, из-за которой его и любят для веба. Объясним без терминов.
Представьте официанта в кафе. Плохой официант принял заказ у первого столика и стоит у кухни, ждёт, пока приготовят блюдо. Все остальные столики ждут его и злятся.
Хороший официант принял заказ, отдал на кухню и сразу пошёл к следующему столику. Когда блюдо готово, кухня его зовёт - он относит его и идёт дальше. Один человек обслуживает весь зал.
Так и работает Node.js. Когда программа отправляет запрос (например, в базу данных) и ждёт ответа, Node не стоит без дела - он берётся за другие задачи. Когда ответ придёт, Node к нему вернётся. Это называется асинхронность, а механизм, который раздаёт и подхватывает задачи, - событийный цикл (event loop).
Из-за этого один процесс Node.js легко держит тысячи одновременных соединений. Для веб-сервиса, где люди постоянно что-то запрашивают, это идеально.