Что такое Node.js

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

Как работает Node.js.

Обычной задачей для веб-сервера может быть открытие файла на сервере и возврат содержимого клиенту. Вот как Node.js обрабатывает запрос файла.

  • Отправка задач в файловую систему компьютера
  • Готов обработать следующий запрос
  • Когда файловая система открывается и читает файл, сервер возвращает содержимое клиенту.

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

Почему Node.js

Node.js использует JavaScript на сервере. Node.js работает на различных платформах, таких как Windows, Mac OS, Linux и т. д. Node.js — очень мощная серверная платформа для разработки современных, надежных и масштабируемых приложений, которой доверяют такие мировые компании, как Uber, Netflix и LinkedIn. . Node.js легкий и очень быстрый, особенно для веб-приложений.

Эта однопоточная архитектура, управляемая событиями, позволяет эффективно обрабатывать множественные соединения. Преимущества использования Node.js. Давайте посмотрим на пример.

1. Один поток.

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

3. Неблокирующий.

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

4. Асинхронный

Асинхронное (или асинхронное) выполнение относится к выполнению, которое не выполняется в той последовательности, в которой оно появляется в коде. В асинхронном программировании программа не ждет завершения задачи и может перейти к следующей задаче.

5. Масштабируемость

Масштабируемость — основная характеристика node.js. Масштабируемые приложения зависят не только от систем, но и от используемой архитектуры приложений. Он масштабируется за счет балансировки нагрузки. По сути, у вас может быть несколько задач для обработки узла, и он может справиться с ними без существенной нагрузки. Это делает его масштабируемым.

6. На основе событий

Программирование, управляемое событиями, — это парадигма программирования, в которой поток программы определяется событиями. Это означает, что поток управления этих серверных платформ управляется возникновением событий. А Node.js — это технология, управляемая событиями. Когда приложение node.js запускается, прослушиватель событий, называемый циклом событий, начинает ожидать событий и не останавливается, пока приложение не будет закрыто.

7. Без буферизации

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

8. Диспетчер пакетов узлов (NPM)

Самая большая в мире бесплатная библиотека функций с открытым исходным кодом, которую можно легко импортировать и использовать в любом приложении узла. Давайте упростим, если вам нужны какие-либо инструменты в приложении, их можно найти в диспетчере пакетов Node. А npm — это менеджер пакетов по умолчанию для Node.js, который устанавливается в систему при установке Node.js. NPM — это сокращенная форма Node Package Manager.

Node.js может…

Node.js может генерировать динамическое содержимое страницы. Nd Node.js может создавать, читать, записывать, открывать, удалять и закрывать файлы на сервере. Node.js может собирать данные формы. Он также может добавлять удаление, обновлять данные в вашей базе данных. Node.js может обеспечить потоковую передачу больших объемов данных в Интернете. Расширение файла Node.js — «.js». Наиболее часто Node.js используется.

  • Среднее развитие стека
  • Сбор данных
  • Потоковая передача
  • Приложения реального времени
  • Чаты
  • Первые и масштабируемые приложения
  • Обработка
  • Браузерные игры
  • Ввод в очередь.

Архитектуры Node.js.

1. Очередь событий

Как только эти запросы достигают приложения, они попадают в очередь событий. И очередь, в которой все события, происходящие в приложении, идут первыми и куда они ожидают отправки для обработки в основном потоке, который называется Event Loop.

2. Цикл событий

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

3. Пул потоков

Многопоточная платформа, которая запускает библиотеку под названием libuv и имеет C ++ в своем ядре, запрос (операция блокировки) обрабатывается асинхронно в фоновом режиме до тех пор, пока он не будет завершен и готов к возврату. Пулы рабочих потоков в Node.js — это группа запущенных рабочих потоков, доступных для использования для входящей задачи. Когда приходит новая задача, ее можно передать доступному работнику. Как только рабочий процесс завершит задачу, он может передать результат родительскому объекту, и этот конкретный рабочий процесс снова будет доступен для принятия новых задач. Давайте посмотрим на пример.