Что за программа node js

Что за программа node js

Как асинхронное событийное JavaScript-окружение, Node.js спроектирован для построения масштабируемых сетевых приложений. Ниже приведен пример "hello world", который может одновременно обрабатывать много соединений. Для каждого соединения вызывается функция обратного вызова, однако, когда соединений нет Node.js засыпает.

Этот подход контрастирует с более распространенной на сегодняшний день моделью параллелизма, в которой используются параллельные OS потоки. Такой подход является относительно неэффективным и очень сложным в использовании. Кроме того, пользователи Node.js могут не беспокоиться о блокировках процессов, поскольку их не существует. Почти ни одна из функций в Node.js не работает напрямую с I/O, поэтому поток никогда не блокируется. В следствии этого на Node.js легко разрабатывать масштабируемые системы.

Для более детального знакомства с этим подходом, можно ознакомится с полной статьей Blocking vs Non-Blocking.

Node.js создан под влиянием таких систем как Event Machine в Ruby или Twisted в Python. Но при этом событийная модель, в нем, используется значительно шире, принимая event loop за основу окружения, а не в качестве отдельной библиотеки. В других системах всегда происходят блокировки вызова, чтобы запустить цикл событий.

Обычно, поведение определяется через функции обратного вызова (callback) в начале скрипта и дальнейшим его вызовом через блокирующий вызов, вроде EventMachine::run() . В Node.js нет ничего похожего на вызов начала цикла событий, он автоматически входит в него после запуска скрипта. Node.js выходит из событийного цикла тогда, когда не остается зарегистрированных функций обратного вызова. Такое поведение похоже на поведение браузерного JavaScript, где событийный цикл скрыт от пользователя.

HTTP является объектом первого рода в Node.js, разработанным с поточностью и малой задержкой, что делает Node.js хорошей основой для веб-библиотеки или фреймворка.

То что Node.js спроектирован без многопоточности, не означает, что в нем нет возможности использовать нескольких ядер. Для работы с ними можно создавать и управлять дочерними процессами, с помощью API Child_process.fork() . Модуль cluster построен на этом интерфейсе и позволяет делиться сокетами между процессами и распределять нагрузку между ядрами.

Читайте также:  Совкомбанк интернет клиент вход в личный кабинет

В© OpenJS Foundation. All Rights Reserved. Portions of this site originally В© Joyent.

Node.js
Тип событийно-ориентированный язык программирования[d]
Разработчик Node.js Foundation[d]
Написана на C++[2] , JavaScript и Си
Операционная система macOS , GNU/Linux [d] , SmartOS , FreeBSD , Microsoft Windows , AIX и Android[3]
Первый выпуск 27 мая2009[1]
Последняя версия
  • 13.12.0 ( 26 марта2020 ) [4]
Состояние активное
Лицензия лицензия X11 [d][5]
Сайт nodejs.org
Медиафайлы на Викискладе

Node или Node.js — программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и десктопные оконные приложения (при помощи NW.js, AppJS или Electron для Linux, Windows и macOS) и даже программировать микроконтроллеры (например, tessel и espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом.

Содержание

История [ править | править код ]

В 1996 году в компании Netscape были попытки создания серверного JavaScript (Server-side JavaScript — SSJS) [6] [7] , однако технология не получила распространения.

Node.js разработал Райан Даль (англ. Ryan Dahl ) в 2009 году после двух лет экспериментирования над созданием серверных веб-компонентов. В ходе своих исследований он пришёл к выводу, что вместо традиционной модели параллелизма на основе потоков следует обратиться к событийно-ориентированным системам. Эта модель была выбрана из-за простоты, низких накладных расходов (по сравнению с идеологией «один поток на каждое соединение») и быстродействия. Целью Node является предложить «простой способ построения масштабируемых сетевых серверов».

Читайте также:  Чей телефонный код 499

Разработка Node.js спонсируется компанией Joyent ( англ. ) .

В декабре 2014 года был создан форк io.js.

В мае 2015 года было принято решение о слиянии io.js и Node.js и дальнейшем развитии под эгидой Node.js Foundation. [8]

8 сентября 2015 года вышел Node.js v4.0.0 как результат слияния Node.js v0.12.7 и io.js v3.3.0. [9] [10]

Важными событиями в развитии платформы стало появление Atomics и SharedArrayBuffer в Node.js 9, а так же worker_threads в Node.js 10.5 (и существенное развитие в Node.js 12). [11] Это позволило создавать многопоточные параллельные приложения, реализовывать примитивы параллельного программирования и работать с разделяемой памятью. [12]

Примеры кода [ править | править код ]

Создание и запуск HTTP-сервера на Node.js, выдающего Hello, world!:

Другой пример скрипта, создающего TCP-сервер, который прослушивает порт 8000 и выводит на экран всё, что вводит пользователь:

Дополнительные пакеты сторонних разработчиков [ править | править код ]

В состав Node.js входит собственный установщик пакетов npm. Установка производится при помощи команды:

Все доступные для установки пакеты и их краткое описание:

Этой же командой можно производить выборочный поиск пакетов.

Что такое Node JS. Начало работы

Node.js представляет среду выполнения кода на JavaScript, которая построена на основе движка JavaScript Chrome V8, который позволяет транслировать вызовы на языке JavaScript в машинный код. Node.js прежде всего предназначен для создания серверных приложений на языке JavaScript. Хотя также существуют проекты по написанию десктопных приложений (Electron) и даже по созданию кода для микроконтроллеров. Но прежде всего мы говорим о Node.js, как о платформе для создания веб-приложений.

Node.js является открытым проектом, исходники которого можно посмотреть на github.com.

Установка

Для загрузки перейдет на официальный сайт https://nodejs.org/en/. На главной странице мы сразу увидим две возможные опции для загрузки: самая последняя версия NodeJS и LTS-версия.

Читайте также:  Как восстановить удаленную историю handy recovery

Загрузим последнюю версию. В моем случае это версия 13.7.0. Для Windows установщик представляет файл с расширением msi. После запуска откроется программа установщика:

После успешной установки вы можем ввести в командной строке/терминале команду node -v , и нам отобразится текущая версия node.js:

Версии node.js для других операционных систем наряду с исходниками можно найти по адресу https://nodejs.org/en/download/

Инструменты разработки

Для разработки под Node JS достаточно простейшего текстового редактора, в частности, Notepad++. Также можно использовать более изощренные редакторы типа Atom, Sublime, Visual Studio Code, либо среды разработки, которые поддерживают работу с Node.JS, например, Visual Studio или WebStorm.

После установки NodeJS нам становится доступным такой инструмент как REPL. REPL (Read Eval Print Loop) представляет возможность запуска выражений на языке JavaScript в командной строке или терминале.

Так, запустим командную строку (на Windows) или терминал (на OS X или Linux) и введем команду node . После ввода этой команды мы можем выполнять различные выражения на JavaScript:

Или используем какую-нибудь функцию JS:

Можно определять свои функции и затем их вызывать, например, возведение числа в квадрат:

Если мы введем что-то неправильно, то REPL укажет об ошибке:

Выполнение файла

Вместо того чтобы вводить весь код напрямую в консоль, удобнее вынести его во внешний файл. Например, создадим на жестком диске новый каталог, допустим, C:
odehelloapp , в который поместим новый файл app.js со следующим кодом:

В командной строке перейдем с помощью команды cd к каталогу helloapp, а затем выполним команду:

Ссылка на основную публикацию
Что если компьютер включается и сразу выключается
Одна из распространенных проблем с компьютером — он включается и сразу выключается (через секунду-другую). Обычно это выглядит следующим образом: нажатие...
Чем отредактировать pdf файл бесплатно
Онлайн PDF редактор для изменения PDF Защищенная с помощью SSL передача файлов Автоматическое удаление файла с сервера через один час...
Чем очистить клей от корпуса телефона
На сенсорном дисплее телефона после снятия защитной пленки остались большие следы клея. Я понимаю, что не надо было экономить на...
Что за номер 800 555
У пользователей часто звонит неизвестный номер 88005551534 или остаются пропущенные звонки. Давайте разберемся какой организации принадлежит этот номер, а ниже...
Adblock detector