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

Модули Node.js

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

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

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

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

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

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

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

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

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

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

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

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

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

Использование модулей в 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» и создания «объекта» можно вызвать необходимые методы экспресс-модуля. Здесь мы используем команду set для установки механизма представления, который используется для установки механизма шаблонов, используемого в Node.js.
  4. Примечание: -(Для понимания читателя: механизм шаблонов — это подход к внедрению значений в приложение путем получения данных из файлов данных. Эта концепция довольно известна в Angular JS, где фигурные скобки {{ key }} используются для замены значений в веб-страницу. Слово «ключ» в фигурных скобках обычно обозначает переменную, которая будет заменена значением при отображении страницы.yed.)

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

Как создавать модули NPM

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

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

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

Фоллоwing Пошаговый процесс создания модулей NPM

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

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

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

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

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

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

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

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

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

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

Результат:

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

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

Расширение модулей в Node.js

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

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

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

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

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

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

Расширение модулей в Node.js

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

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

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

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

Расширение модулей в 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();
}
}

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

  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, который является основным файлом вашего приложения, и включите приведенный ниже код.

Расширение модулей в 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

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

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

Вывод:

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

  • Руководство по узлу
  • Guru99 Учебник

Пакет публикации NPM (диспетчер пакетов узлов)

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

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

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

Фоллоwing необходимо выполнить шаги, чтобы опубликовать ваш модуль npm

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

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

Приведенные ниже команды задают имя, email и URL автора модуля npm.

npm устанавливает init.author.name «Guru99».

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

npm устанавливает 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 –глобальный Глобальная опция в приведенном выше операторе позволяет устанавливать модули на глобальном уровне.
  2. Список всех глобальных пакетов, установленных на локальном компьютере. Это можно сделать, выполнив приведенную ниже команду в командной строке.список npm – глобальныйНиже приведен вывод, который будет показан, если вы ранее установили «экспресс-модуль» в вашей системе. Здесь вы можете увидеть различные модули, установленные на локальном компьютере.

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

  1. Установка определенной версии пакета. Иногда может потребоваться установить только определенную версию пакета. Как только вы узнаете имя пакета и соответствующую версию, которую необходимо установить, вы можете использовать команду установки npm для установки этой конкретной версии. В примере ниже показано, как установить модуль с именем подчеркивания с конкретной версией установки 1.7.0npm. подчеркивание @ 1.7.0
  2. Обновление версии пакета. Иногда в системе может быть более старая версия пакета, и вы можете захотеть обновить его до последней версии, доступной на рынке. Для этого можно использовать команду обновления npm. В примере ниже показано, как обновить пакет подчеркивания до последней версии.подчеркивание обновления npm
  3. Searching для конкретного пакета. Чтобы узнать, доступна ли определенная версия в локальной системе или нет, вы можете использовать команду поиска npm. В приведенном ниже примере будет проверено, установлен ли экспресс-модуль на локальном компьютере или нет.npm поиск экспресс
  4. Удаление пакета. Вы можете установить пакет так же, как и удалить его. Удаление пакета выполняется с помощью команды удаления npm. В примере ниже показано, как удалить экспресс-модуль.NPM удалить экспресс

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

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

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

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

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

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

Файл Package.json

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

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

Файл Package.json

Итого

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