Node.js для начинающих: описание, пользователя, особенности
Опубликованно 11.01.2018 00:15
Node.js это среда исполнения JavaScript, встроенный в версию двигателя V8 JS из хрома. Платформа Node.js для начинающих использует событийно-ориентированный и неблокирующий модель ввода / вывода, что делает его легким и эффективным. Пакетный экосистемы Node.js это крупнейшая экосистема библиотек и открытых источников в мире. Проект осуществляется при поддержке Фонда Node.js. Гонорары, политики и выбросы контролируются в рамках модели открытого управления.Node.js для новичков: определение
Node.js представляет собой платформу разработки с открытым исходным кодом для работы JavaScript на стороне сервера. Узел полезна для разработки приложений, которые требуют постоянное подключение из браузера на сервер. Часто используется для приложений реального времени, таких как чат, новостная лента и push-уведомления.
Node.js предназначен для работы на выделенном сервере http, чтобы использовать один поток с одного процесса на единицу времени. Начиная с Node.js на основе событий и выполняется асинхронно. Код, построенный на этой платформе, не соответствует традиционной модели получения, обработки, отправки, ожидания и приема. Вместо этого, узел обрабатывает входящие запросы в стоге регулярные события, посылает небольшие запросы один за другим и не жду ответов.
Книги Node.JS для начинающих содержат большое количество данных по переходу от базовых моделей, которые выполняются более сложные процессы и одновременно запускать несколько потоков. Каждый из них ожидает адекватный ответ, прежде чем двигаться дальше. Начало Node.js — На JavaScript
Узел основан на JavaScript, поэтому понимание платформы невозможно без понимания и JS. Уроки для начинающих Node.js содержат вводные сведения о языке программирования, на которых основана Платформа. JavaScript-это интерпретируемый язык программирования или скриптов из Netscape. Он похож на Microsoft Visual ваѕісв, Солнце на TCL или Perl, Unix и Рекс от IBM. Скриптовых языков JavaScript и легче и быстрее, чем более структурированы и обобщены, таких как C и C ++. Скриптовые языки, как правило, занимают больше времени, чем компилируется, но они очень полезны для коротких программ.
JavaScript используется в разработке веб-сайта для выполнения таких задач, как автоматическое изменение форматирования даты на веб-странице. Это причина, почему страницы отображается во всплывающем окне.
При изменении текста или графического изображения на JavaScript использует ту же идею как в Java (компилируемый объектно-ориентированное программирование производные от C ++).Характерные особенности в JS
JavaScript обычно используется в веб-разработке. Изначально он был разработан компанией Netscape в качестве средства для добавления динамических и интерактивных элементов на веб-сайтах. Хотя JavaScript зависит на Java, синтаксис больше похож на C и основан на ecmascript — скриптовый язык, разработанный компанией Sun Микросистем.
JavaScript-это язык сценариев на стороне клиента. Это означает, что исходный код обрабатывается с помощью веб-браузера клиента, а не веб-сервер. Функции можно запустить после загрузки веб-страницы без подключения к серверу. Например, JavaScript может проверить веб-формы перед отправкой, чтобы убедиться, что выполнены все обязательные поля. Код может выдать сообщение об ошибке, прежде чем любая информация на самом деле отправляется на сервер.
Как серверных скриптовых языков, таких как PHP и asp, JavaScript-код может быть вставлен в любое место HTML-страницы на web. Однако вывод HTML показывает только код на стороне сервера, а JavaScript-код полностью виден в исходном коде веб-страницы. Она также может быть найден в отдельном файле .JS, где также можно посмотреть в браузере.Пример кода
Ниже приводится пример простой функции JavaScript, которая добавляет два числа. Функция вызывается с параметрами 7 и 11. Если следующий код были включены в веб-страницу HTML, в нем отображается текст "18" на предупреждение.
раздел <script>
функция sum(А,Б)
{
возврат А + Б;
}
вар = сумма(7,11);
предупреждение(общая);
</скрипт>
Функции JavaScript можно назвать в теги <script>, или при возникновении определенных событий. Примеры включают onclick функции, метод onmousedown, onMouseUp, метода onkeydown, onkeyup до, onFocus, onBlur, onSubmit, и многие другие. Хотя стандартный JavaScript используется для выполнения основных функций клиента, многие веб-разработчики предпочитают использовать JavaScript библиотеки, такие как jQuery, чтобы добавить на веб-сайты более продвинутые динамические элементы.Преимущества и важные детали
Одним из главных преимуществ Node.js по словам его создателя Райан Даль, что это не блок ввода/вывода (I/О). Некоторые разработчики очень самокритичны Node.js и учтите, что если один процесс требует значительного количества циклов процессора, приложение блокируется. Это может привести к аварии. Сторонники этой модели Node.js утверждают, что время обработки процессора меньше беспокоиться из-за большого числа мелких процессов, которые основаны на коде сайта.
Популярность JavaScript-приложений быстро в последние несколько лет растет, и Node.js безусловно, способствует этому росту. Если мы посмотрим на статистику, то мы увидим, что есть узел больше пакетов, чем аналогичные данные в Ruby. Второй фактор: узел пакеты растут быстрее, чем Ruby, Python и Java.
Что делает его более популярным, чем рельсы и другие альтернативы Node.JS? С чего начать обучение? Сам узел является асинхронным Платформа, основанная на событие JavaScript на основе движка Chrome и предназначена для создания масштабируемых сетевых приложений. Другими словами, Node.js это JavaScript плюс на C/C ++ в сочетании с файловой системой, можно запустить http или TCP сервера.
Узел топотекан и использует модель параллелизма, основанная на серии событий. Он не блокирует процесс и не заставляет программу ждать, но регистрирует обратный вызов и позволяет приложению продолжать. Это означает, что Платформа может обрабатывать параллельные операции без нескольких потоков выполнения и эффективно весы.
Между последовательными языков и Node.js существуют большие различия:
Узел позволяет выполнять другие задачи во время ожидания на уведомление, когда ответ будет доступен;
приложение не буфер данных в памяти, а вместо этого делает его фрагментарным.
Хотя есть и другие системы, а циклы событий (например, в Ruby EventMachine или скрученные в Python), и узел между ними есть существенная разница.
В Node.JS все библиотеки были разработаны с нуля, чтобы быть неблокируемой, чего нельзя сказать о других.Варианты использования
Узел идеально подходит для приложений с учетом ввода / вывода, но не так хорошо для приложений с процессора. Отличным примером является приложение для запуска в режиме реального времени (грязь), один-страницы, в формате json API и приложения для потоковой передачи данных.Официальный узла менеджер пакетов (npm)
Узел должен большую часть своего успеха в менеджер пакетов, который поставляется вместе с ним. Преимущества данного инструмента:
он устанавливает зависимости применения локально, а не глобально;
в то же время он обрабатывает несколько версий одного модуля;
вы можете указать архивов и репозиториев git в качестве зависимостей;
это очень легко опубликовать свой собственный модуль НПМ реестра.Node.js Установка
Для новичков есть официальные установщики для узла в Windows и OS X также представлена возможность установки через менеджер пакетов. Для тестирования кода с разными версиями узле используются НВМ (узел Manager версия).
С помощью этого инструмента, вы можете использовать несколько вариантов узлов, установленных в системе, и легко переключаться между ними. В следующих нескольких строках мы увидим, как установить НВМ в системе Ubuntu.
Во-первых, мы должны убедиться, что наша система имеет компилятор языка C++:
$ судо apt-получить обновление
$ судо apt-получить установку сборки-необходимые libssl-dev и
Затем можно скопировать и вставить один установщик линия для НВМ в терминале:
$ завиток https://raw.githubusercontent.com/creationix/nvm/v0.13.1/install.sh | нажмите
НВМ должен быть правильно установлен, так что мы выходим из системы и авторассвете, чтобы убедиться, что все правильно. Введите команду:
$ нвм
Если вы ввели, никакой ошибки не возникает, это означает, что все в порядке. Теперь мы можем перейти к реальному созданию узла и НПМ.
Результат в командной строки должен выглядеть следующим образом:
$ нвм установить V0.10.31
################################################## ################ 100,0%
Теперь оба узла и нпм должны быть доступны в терминале:
$ узел-в & амп; & амп; & амп; нпм -в
версия V0.10.31
1.4.23
Теперь нужно запустить Node.JS по умолчанию, после выполнения команды в терминале:
$ нвм по умолчанию псевдоним 0.10.31
Мы можем установить другие версии узла также, как и раньше, и переключаться между ними с помощью команды использовать нвм:
$ нвм установить V0.8.10
Если Вы не знаете, какая версия установлена в системе, просто введите нвм-список. Этот инструмент покажет Вам полный список, а также текущие и умолчанию версии, например:
список $ нвм
версия V0.6.3 версии V0.6.12 версии V0.6.14 версии V0.6.19 версия V0.7.7 версии V0.7.8 версии V0.7.9 версии V0.8.6 версии V0.8.11 версии V0.10.3 версии V0.10.12 версии V0.10.15 версия V0.10.21 версия V0.10.24 версии V0.11.9 текущий: версии V0.10.24 по умолчанию -> версии V0.10.24Модули
В учебнике Node.JS начинающий java или Python, необходимые для использования функции импорта для загрузки других библиотек, а использование PHP и Ruby не. Узел реализует интерфейс на commonjs модулей. Также вы можете скачать дополнительные параметры, используя ключевое слово требуют.
Например, нам могут понадобиться некоторые специальные модули:
вар протоколу http = требуют ('нттр');
вар ДНС = требуют ('ДНС');
Мы также можем назвать относительной файл:
вар файл myfile = требуют ('./ файл myfile'); // myFile.js скачать
Для установки модулей с НПМ цифры, искать их на веб-сайте или в github. Синтаксис для установки модуля локально довольно прост:
# где экспресс === имя модуля
$ нпм установить экспрессОбратные вызовы
В асинхронное программирование мы не возвращают значения при выполнении функций, а продолжение стиля прохождения (КП). Используя этот стиль асинхронного вызова функций обратного вызова (функция, как правило, передается в качестве последнего аргумента), чтобы продолжить выполнение программы после ее завершения.
Ниже приведен пример поиска адресов IPv4 для домена:
вар ДНС = требуют ('ДНС');
ДНС.resolve4 ('www.google.com', функция (ошибаться, адреса) {
если (грешат) бросить ошибиться;
консоль.адреса журнала (':' + json-файле.преобразовать в строки (адреса));
});
Мы прошли обратный звонок (анонимный встроенной функции) в качестве второго аргумента асинхронный DNS.resolve4. Как только функция async готов, он будет вызвать обратного вызова, чтобы продолжать выполнение программы.События
Руководство для начинающих Node.JS представляет собой стандартный шаблон обратного вызова, который хорошо работает для случаев использования, когда мы хотим получать уведомления при завершении функция дисплей. Однако, есть ситуации, которые требуют уведомления о различных событиях, которые не происходят одновременно.
Давайте посмотрим на пример кода с IRC-клиент:
вар ици = требуют ('ирц');
клиент вар = новый IRC.Клиент ('irc.freenode.net', 'myIrcBot', {
каналы: ['# пример-канал']
});
клиента.на ('ошибка', функция (сообщение) {
консоль.ошибка ('ошибка:', сообщение);
});
клиента.на ("подключить", функция () {
консоль.журнал ("подключить к серверу IRC");
});
клиента.на ('сообщение', функция (с, к, сообщение) {
консоль.журнал (от + '=>' + к + ':' + сообщение);
});
клиента.на функция ("ПМ", (от, сообщение) {
консоль.журнал (от + '=> мне: + сообщение);
}).
В приведенном выше примере мы имеем дело с тремя видами событий:
событие подключения выдается, когда клиент успешно подключился к серверу.
в случае ошибки срабатывает в случае ошибки;
сообщения и события вечера выбрано для входящих сообщений.
Вышеописанные события, сделать это идеальное положение, чтобы использовать шаблон EventEmitter.
Шаблон EventEmitter позволяет разработчикам производить событие, которое потребители могут подписаться, если они заинтересованы. Этот шаблон может быть знакомы с браузером, где она используется для присоединения обработчиков событий.
Узел имеет класс EventEmitter в ядре, который мы можем использовать, чтобы создать свой собственный объект EventEmitter. Пытаюсь создать класс, который наследует проблемы с memorywatcher EventEmitter и генерирует два типа событий:
данных с регулярным интервалом, который представляет собой использование памяти в байтах;
событие состояния "ошибка", если память превышает определенный предел.
Таким образом, узел не является веб-сервером, и один из способов создания кода на компьютере. Это среда для работы с JavaScript.
Категория: обо всём