Node.js
В этом руководстве вы узнаете, что такое Node.js и почему и когда вам следует его использовать.
Node.js — это кроссплатформенная среда выполнения с открытым исходным кодом, которая позволяет использовать JavaScript для разработки серверных приложений.
В каждом веб-браузере есть механизм JavaScript, который берет код JavaScript и компилирует его в машинный код. Например, Firefox использует SpiderMonkey, а Google Chrome — V8. Поскольку браузеры используют разные движки JavaScript, иногда вы увидите, что JavaScript ведет себя по-разному в разных браузерах.
В 2009 году Райан Даль, создатель Node.js, взял движок V8 и внедрил его в приложение, которое могло выполнять JavaScript на сервере.
На следующем рисунке показана система Node.js:
Node.js использует однопоточную, неблокирующую и управляемую событиями модель выполнения, которая аналогична модели выполнения JavaScript в веб-браузере.
Однопоточность
Node.js является однопоточным. Это означает, что каждый процесс имеет только один поток выполнения.
Однопоточная модель выполнения позволяет легко обрабатывать больше одновременных запросов через цикл обработки событий. Из-за этого приложения Node.js обычно потребляют сравнительно меньше памяти.
Если вы не знакомы с циклом событий, ознакомьтесь с этим руководством по циклу событий. Цикл событий в работает так же, как цикл событий в веб-браузерах.
Использование неблокирующего ввод-вывод
I/O означает ввод/вывод. Это может быть доступ к диску, сетевой запрос или подключение к базе данных. Запросы ввода-вывода являются дорогостоящими и медленными и, следовательно, блокируют другие операции.
Node.js решает проблемы блокировки ввода-вывода с помощью неблокирующих запросов ввода-вывода.
Неблокирующий означает, что вы можете сделать запрос, делая что-то еще, а затем, когда этот запрос будет завершен, будет выполнен обратный вызов для обработки результата.
Другими словами, выполнение программы может продолжаться, пока выполняются другие операции.
Управление событиями
Управляемая событиями природа node.js объясняет, как он планирует операции, используя цикл событий.
Чем хорош?
Node.js хорош для создания прототипов и гибкой разработки. Он также позволяет создавать быстрые и хорошо масштабируемые приложения.
Node.js имеет большую экосистему библиотек с открытым исходным кодом, так что вы можете повторно использовать существующие библиотеки и уделять больше времени своим приложениям.
Если вы уже используете JavaScript для разработки внешнего интерфейса, вы можете использовать свои существующие навыки для разработки на стороне сервера. Используя один и тот же JavaScript как на стороне клиента, так и на стороне сервера, ваша кодовая база становится более чистой и последовательной.