Что такое Node.js

Node.js это не библиотека, и не фреймворк, как может показаться с первого взгляда. Это целая платформа, или, правильнее сказать среда выполнения JavaScript, позволяющему языку существенно расширить свои возможности, превращая его из узкоспециализированного в язык общего назначения.

Node.js опирается на движок Google V8, который компилирует JavaScript код в машинный, написан в основном на языке C++ и Python, и обладает открытым исходным кодом. В его основе однопоточная событийная модель взаимодействия и неблокирующий ввод/вывод.

Node.js не только позволяет JavaScript работать где угодно, а и добавляет недостающую ему функциональность. Например, он позволяет языку работать с файлами, или использовать модули написанные на других языках программирования.

Возможно, именно благодаря Node.js, язык JavaScript стал настолько популярным в мире. Вместе с Node.js зная только JavaScript можно иметь титул full stack web developer и писать клиентский и серверный код.

История и миссия

Причиной возникновения Node.js является попытка вынести JavaScript за пределы браузера. И это успешно удалось. На данный момент, благодаря Node.js, код JavaScript можно исполнять, где угодно, как локально, так и на сервере и не важно какая операционная система установлена Windows, Linux или iOS.

Первая версия Node.js увидела свет еще в 2009 году как альтернатива популярному веб серверу Apache, который использует противоположный подход к работе – потоки и блокирующий ввод/вывод.

Приблизительно через год был введен менеджер пакетов (npm), о котором я расскажу чуть позже. Но забегая на перед, скажу, что он существенно облегчает переиспользование кода написанный другими программистами.

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

На протяжении пяти лет Node.js разрабатывалась и управлялась частной компанией и в этот период возникли разногласия в середине ядра разработчиков, что привело к появлению новой альтернативы — io.js, которая получила поддержку ES6 и более частые обновления.

Разрозненность продлилось недолго, в начале 2015 было заявлено о создании нейтрального фонда Node.js Foundation, который поддержали оба сообщества и осенью того же года Node.js поглотил io.js. С тех пор Node.js непрерывно развивается и выпускаются новые обновления.

Сфера применения

Node.js используется огромным количеством веб приложений написанных на JavaScript, или одном из популярных библиотек, например, Angular, React или Vue.

Главные задачи, которые выполняет Node.js – это обработка HTTP запросов, работа с базой данных, работа с файловой системой и т.д., то есть, то, чем занимается серверная часть веб приложения.

NPM

NPM (Node Package Manager) – менеджер пакетов для JavaScript, позволяет управлять установкой, настройкой, обновлением и удалением модулей в среде Node.js. Управление осуществляется с помощью командной строки.

В распоряжении разработчиков гигантский репозиторий, который можно использовать без ограничений и где можно найти все, что угодно, в частности, благодаря огромному сообществу.