Учебники

3) Модули Node.js

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

Поскольку каждый модуль является независимой сущностью со своей собственной инкапсулированной функциональностью, им можно управлять как отдельной единицей работы.

В этом уроке вы узнаете

Что такое модули в Node.js?

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

Ниже приведены некоторые из популярных модулей, которые используются в приложении Node js.

  1. Express Framework — Express — это минимальная и гибкая инфраструктура веб-приложений Node js, предоставляющая надежный набор функций для веб- приложений и мобильных приложений.
  2. Socket.io — Socket.IO обеспечивает двустороннюю связь на основе событий в режиме реального времени. Этот модуль хорош для создания приложений для чата.
  3. Jade — Jade — это высокопроизводительный шаблонизатор, реализованный на JavaScript для узлов и браузеров.
  4. MongoDBдрайвер MongoDB Node.js является официально поддерживаемым драйвером node.js для MongoDB.
  5. Restify — restify — это облегченная среда, похожая на экспресс для построения REST API.
  6. Bluebird — Bluebird — полнофункциональная библиотека обещаний с акцентом на инновационные функции и производительность

Использование модулей в Node.js

Чтобы использовать модули в приложении Node.js, их сначала необходимо установить с помощью диспетчера пакетов Node.

В приведенной ниже командной строке показано, как можно установить модуль «экспресс».

npm установить экспресс

Учебник по NPM для Node.js: создание, публикация, расширение и управление

  • Приведенная выше команда загрузит необходимые файлы, которые содержат «экспресс-модули», а также позаботится об установке
  • После того, как модуль установлен, для использования модуля в приложении Node.js необходимо использовать ключевое слово require. Это ключевое слово является способом, который Node.js использует для включения функциональности модуля в приложение.

Давайте рассмотрим пример того, как мы можем использовать ключевое слово require. В приведенном ниже примере кода «Guru99» показано, как использовать функцию require

Учебник по NPM для Node.js: создание, публикация, расширение и управление

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
});
var server=app.listen(3000,function()
{
});
  1. В первом утверждении мы используем ключевое слово require для включения экспресс-модуля. Модуль «экспресс» — это оптимизированная библиотека JavaScript для разработки Node.js. Это один из наиболее часто используемых модулей Node.js.
  2. После того, как модуль включен, чтобы использовать функциональные возможности внутри модуля, необходимо создать объект. Здесь создается объект экспресс-модуля.
  3. Как только модуль включен с помощью команды require и создан «object», могут быть вызваны требуемые методы экспресс-модуля. Здесь мы используем команду set для установки движка представления, который используется для установки движка шаблонов, используемого в Node.js.

    Примечание: — (Просто для понимания читателя; механизм шаблонов — это подход для ввода значений в приложение путем сбора данных из файлов данных. Эта концепция довольно известна в Angular JS, где фигурные скобки {{key}} используются для подставляет значения на веб-странице. Слово «ключ» в фигурных скобках в основном обозначает переменную, которая будет заменена значением при отображении страницы.)

  4. Здесь мы используем метод listen для того, чтобы приложение прослушивало определенный номер порта.

Создание модулей NPM

Node.js имеет возможность создавать пользовательские модули и позволяет вам включать эти пользовательские модули в ваше приложение Node.js.

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

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

Шаг 1) Создайте файл с именем «Addition.js» и включите приведенный ниже код. Этот файл будет содержать логику для вашего модуля.

Ниже приведен код, который будет входить в этот файл;

Учебник по NPM для Node.js: создание, публикация, расширение и управление

var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};
  1. Ключевое слово «export» используется для обеспечения того, чтобы функциональность, определенная в этом файле, была фактически доступна другим файлам.
  2. Затем мы определяем функцию под названием «AddNumber». Эта функция определена, чтобы принять 2 параметра, a и b. Функция добавлена ​​в модуль «экспорт», чтобы сделать функцию общедоступной функцией, к которой могут обращаться другие модули приложения.
  3. Мы наконец заставляем нашу функцию возвращать добавленную стоимость параметров.

Теперь, когда мы создали наш пользовательский модуль, который имеет функцию добавления 2 чисел. Пришло время создать приложение, которое будет вызывать этот модуль.

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

Шаг 2) Создайте файл с именем «app.js», который является вашим основным файлом приложения, и добавьте следующий код

Учебник по NPM для Node.js: создание, публикация, расширение и управление

var Addition=require('./Addition.js');
console.log(Addition.AddNumber(1,2));
  1. Мы используем ключевое слово require для включения функциональности в файл Addition.js.
  2. Поскольку функции в файле Addition.js теперь доступны, мы можем теперь вызвать функцию AddNumber. В функции мы передаем 2 числа в качестве параметров. Затем мы отображаем значение в консоли.

Учебник по NPM для Node.js: создание, публикация, расширение и управление

Выход :

  • Когда вы запустите файл app.js, вы получите вывод значения 3 в журнале консоли.
  • Это связано с тем, что функция AddNumber в файле Addition.js была успешно вызвана, а возвращаемое значение 3 отображалось в консоли.

Примечание: — Мы пока не используем «Диспетчер пакетов Node» для установки нашего модуля Addition.js. Это потому, что модуль уже является частью нашего проекта на локальной машине. Менеджер пакетов Node появляется, когда вы публикуете модуль в Интернете, что мы увидим в следующем разделе.

Расширяющиеся модули

При создании модулей также можно расширять или наследовать один модуль от другого.

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

Давайте рассмотрим пример того, как мы можем расширить модули в Node.js.

Шаг 1) Создайте базовый модуль.

В нашем примере создайте файл с именем «Tutorial.js» и разместите приведенный ниже код.

В этом коде мы просто создаем функцию, которая возвращает строку в консоль. Возвращенная строка — «Учебник по Guru99».

Учебник по NPM для Node.js: создание, публикация, расширение и управление

var exports=module.exports={};
exports.tutorial=function()
{
console.log("Guru99 Tutorial")
}
  1. Модуль экспорта используется для того, чтобы любая функция, определенная в этом файле, могла быть доступна в других модулях в Node.js.
  2. Мы создаем функцию с названием tutorial, которую можно использовать в других модулях Node.js.
  3. Мы отображаем строку «Guru99 Tutorial» в консоли, когда вызывается эта функция.

Теперь, когда мы создали наш базовый модуль под названием Tutorial.js. Пришло время создать еще один модуль, который расширит этот базовый модуль.

Мы рассмотрим, как это сделать, на следующем шаге.

Шаг 2) Далее мы создадим наш расширенный модуль. Создайте новый файл с именем «NodeTutorial.js» и поместите приведенный ниже код в файл.

Учебник по NPM для Node.js: создание, публикация, расширение и управление

var Tutor=require('./Tutorial.js');
exports.NodeTutorial=function()
{
console.log("Node Tutorial")
function pTutor()
{
var PTutor=Tutor
PTutor.tutorial();
}
}

Or
var Tutor=require('./Tutorial.js');
exports.NodeTutorial=function()
{
console.log("Node Tutorial")
this.pTutor = function ()
{
var PTutor=Tutor
PTutor.tutorial();
}
}

Обратите внимание, следующие ключевые моменты о приведенном выше коде

  1. Мы используем функцию «require» в самом файле нового модуля. Поскольку мы собираемся расширить существующий файл модуля «Tutorial.js», нам нужно сначала включить его, прежде чем расширять.
  2. Затем мы создаем функцию под названием «Nodetutorial». Эта функция будет делать 2 вещи,
  • Он отправит строку «Node Tutorial» на консоль.
  • Он отправит строку «Guru99 Tutorial» из базового модуля «Tutorial.js» в наш расширенный модуль «NodeTutorial.js».
  1. Здесь мы выполняем первый шаг, чтобы отправить строку «Node Tutorial» на консоль.
  2. Следующим шагом является вызов функции из нашего модуля Tutorial, который выведет строку «Guru99 Tutorial» в console.log.

Шаг 3) Создайте ваш основной файл app.js, который является вашим основным файлом приложения и включает в себя приведенный ниже код.

Учебник по NPM для Node.js: создание, публикация, расширение и управление

var localTutor=require('./NodeTutorial.js');
localTutor.NodeTutorial();
localTutor.NodeTutorial.pTutor();

Or use this code
var tut = new localTutor.NodeTutorial();  // Create and save object
tut.pTutor();  // Call function on object

Приведенный выше код выполняет следующие действия;

  1. Наш основной файл приложения теперь вызывает модуль «NodeTutorial».
  2. Мы вызываем функцию «NodeTutorial». При вызове этой функции текст «Node Tutorial» будет отображаться в журнале консоли.
  3. Так как мы расширили наш модуль Tutorial.js и представили функцию pTutor. Он также вызывает модуль Tutorial в модуле Tutorial.js, и текст «Guru99 Tutorial» также будет отображаться на консоли.

Вывод:

Поскольку мы выполнили приведенный выше код app.js с помощью Node, мы получим следующий вывод в файле console.log

  • Узел Учебник
  • Учебник Guru99

Публикация модулей NPM (менеджер пакетов узлов)

Можно опубликовать свой собственный модуль в своем собственном репозитории Github.

Публикуя свой модуль в центральном месте, вы не обременяетесь необходимостью устанавливать себя на каждую машину, которая этого требует.

Вместо этого вы можете использовать команду установки npm и установить опубликованный модуль npm.

Для публикации вашего модуля npm необходимо выполнить следующие шаги

Шаг 1) Создайте свой репозиторий на GitHub (онлайн-инструмент управления хранилищем кода). Он может быть использован для размещения ваших репозиториев кода.

Шаг 2 ) Вам нужно сообщить вашей локальной установке npm, кто вы. Это означает, что нам нужно сообщить npm, кто является автором этого модуля, что такое идентификатор электронной почты и любой доступный URL компании, который должен быть связан с этим идентификатором. Все эти детали будут добавлены в ваш модуль npm, когда он будет опубликован.

Приведенные ниже команды задают имя, адрес электронной почты и URL-адрес автора модуля npm.

npm установить init.author.name «Guru99.»

npm установлен init.author.email » guru99@gmail.com «

npm set init.author.url http://Guru99.com

Шаг 3) Следующий шаг — войти в npm, используя учетные данные, указанные на последнем шаге. Чтобы войти, вам нужно использовать команду ниже

npm login 

Шаг 4) Инициализируйте ваш пакет. Следующий шаг — инициализация пакета для создания файла package.json. Это можно сделать, выполнив следующую команду

npm init

Когда вы выполните вышеуказанную команду, вам будет предложено ответить на несколько вопросов. Наиболее важным является номер версии для вашего модуля.

Шаг 5) Публикация в GitHub. Следующий шаг — публикация ваших исходных файлов в GitHub. Это можно сделать, выполнив следующие команды.

git add.
git commit -m "Initial release"
git tag v0.0.1 
git push origin master --tags

Шаг 6) Опубликуйте свой модуль — последний шаг — опубликовать ваш модуль в реестре npm. Это делается с помощью приведенной ниже команды.

npm publish

Управление сторонними пакетами с помощью npm

Как мы уже видели, «менеджер пакетов Node» имеет возможность управлять модулями, которые требуются приложениям Node.js.

Давайте рассмотрим некоторые функции, доступные в менеджере пакетов узлов для управления модулями.

  1. Установка пакетов в глобальном режиме. Модули можно устанавливать на глобальном уровне, что в основном означает, что эти модули будут доступны для всех проектов Node.js на локальном компьютере. В приведенном ниже примере показано, как установить «экспресс-модуль» с помощью глобальной опции.

    npm install express –global

    Глобальная опция в приведенном выше утверждении — это то, что позволяет устанавливать модули на глобальном уровне.

  2. Перечисление всех глобальных пакетов, установленных на локальном компьютере. Это можно сделать, выполнив приведенную ниже команду в командной строке

    список npm —global

    Ниже вывод, который будет показан, если вы ранее установили «экспресс-модуль» в вашей системе.

    Здесь вы можете увидеть различные модули, установленные на локальном компьютере.

Учебник по NPM для Node.js: создание, публикация, расширение и управление

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

    В приведенном ниже примере показано, как установить модуль underscore с определенной версией 1.7.0.

    npm install underscore@1.7.0

  2. Обновление версии пакета. Иногда в системе может быть установлена ​​более старая версия пакета, и вы можете захотеть обновить ее до последней доступной на рынке. Для этого можно использовать команду обновления npm. В приведенном ниже примере показано, как обновить пакет подчеркивания до последней версии.

    npm update подчеркивание

  3. Поиск определенного пакета. Чтобы найти, доступна ли конкретная версия в локальной системе или нет, вы можете использовать команду поиска npm. В приведенном ниже примере проверяется, установлен ли экспресс-модуль на локальном компьютере или нет.

    npm search express

  4. Удаление пакета — то же самое, в котором вы можете установить пакет, вы также можете удалить пакет. Удаление пакета выполняется с помощью команды удаления npm. Пример ниже показывает, как удалить экспресс-модуль

    Npm Удалить Экспресс

Что такое файл package.json

Файл «package.json» используется для хранения метаданных о конкретном проекте . Эта информация предоставляет менеджеру пакета Node необходимую информацию, чтобы понять, как проект должен обрабатываться вместе с его зависимостями.

Файлы package.json содержат такую ​​информацию, как описание проекта, версия проекта в конкретном дистрибутиве, информация о лицензии и данные конфигурации.

Файл package.json обычно находится в корневом каталоге проекта Node.js.

Давайте рассмотрим пример того, как выглядит структура модуля при его установке через npm.

Приведенный ниже снимок показывает содержимое файла экспресс-модуля, когда он включен в ваш проект Node.js. На снимке вы можете увидеть файл package.json в папке Express.

Учебник по NPM для Node.js: создание, публикация, расширение и управление

Если вы откроете файл package.json, вы увидите много информации в этом файле.

Ниже приведен снимок части файла. В express@~4.13.1 указывается номер версии используемого модуля express.

Учебник по NPM для Node.js: создание, публикация, расширение и управление

Резюме

  • Модуль в Node.js — это логическая инкапсуляция кода в одном модуле. Разделение на модули делает код более управляемым и поддерживаемым для будущих целей
  • На рынке доступно много модулей, которые можно использовать в Node.js, таких как экспресс, подчеркивание, MongoDB и т. Д.
  • Диспетчер пакетов узла (npm) используется для загрузки и установки модулей, которые затем можно использовать в приложении Node.js.
  • Можно создавать собственные модули NPM, расширять эти модули, а также публиковать эти модули.
  • Диспетчер пакетов Node имеет полный набор команд для управления модулями npm в локальной системе, таких как установка, удаление, поиск и т. Д.
  • Файл package.json используется для хранения всей информации метаданных для модуля npm.