Node.js это — среда выполнения JavaScript. Что же это значит, и как работает?
Окружение Node.js включает все, что вам нужно для выполнения программы, написанной на JavaScript.
Раньше вы могли запустить JavaScript только в браузере, но однажды разработчики расширили его, и теперь вы можете запускать JS на своем компьютере в качестве отдельного приложения. Так появился Node.js.
Теперь вы можете сделать гораздо больше с JavaScript, чем просто интерактивные веб-сайты.
Node.js запускаются в среде выполнения V8. Этот двигатель использует ваш JS код, и преобразует его в более быстрый машинный код.
Почему Node.js?
— Node.js использует управляемую событиями, неблокирующую модель ввода-вывода, которая делает ее легкой и эффективной.
— Пакетная экосистема Node.js, npm, является самой большой экосистемой библиотек с открытым исходным кодом в мире.
Давайте разбираться в этих фактах, так мы сможем понять, почему Node.js так популярен.
Неблокирующая модель ввода-вывода
I/O означает ввод/вывод. Это может быть что угодно: от чтения/записи локальных файлов до HTTP-запроса в API. I/O занимает время и, следовательно, блокирует другие функции.
В Node.js ответ на несколько запросов требует времени, но оба запроса могут выполняться независимо и в одно и то же время.
Асинхронность в сочетании с событийным подходом. В отличие от потокового, событийно-ориентированное программирование основано на каких-то внешних действиях. Т.е. выполнение программы зависит от действий пользователя или поступившего в программу сетевого пакета и т.д.
Такое решение упрощает программирование интерактивных приложений, т.е. основанных на работе с использованием ввода-вывода. Это могут быть онлайн-чаты или игровые приложения, красочные интерактивные веб-сервисы или всевозможные калькуляторы, рейтинги, голосования и т.д.
Пакетная экосистема npm
Платформа изначально обладала широким набором возможностей, а в новых версиях библиотека пополняется и улучшается.
Имеется множество внешних библиотек и готовых модулей.
Использование пакетного менеджера NPM позволяет постоянно развивать экосистему Node.
Проект распространяется с открытым кодом, а потому развивается огромными темпами. Координирует работу фонд Node.js.
Для расширения возможностей разработчика применяется огромное количество библиотек. Ниже мы приводим несколько самых популярных:
- Meteor – мощный фреймворк для работы с кодом одновременно и на сервере, и на клиенте.
- Next.js – библиотека для серверного рендеринга кода на React.
- Express – один из самых мощных универсальных фреймворков для серверов.
- Micro – легковесная и компактная, но при этом обладающая широким набором функций, библиотека для HTTP-микросерверов.
- Koa – доработанный вариант библиотеки Express. Фреймворк получился таким же мощным, но при этом более компактным.
- Socket.io – одна из самых популярных библиотек для приложений, которые взаимодействуют с клиентами в режиме реального времени.
Friday, February 12, 2021