Учебное пособие по Node.js NPM: как создавать, расширять и публиковать модули
Модули Node.js
Модуль в Node.js — это логическая инкапсуляция кода в одном модуле. Хорошей практикой программирования всегда является разделение кода таким образом, чтобы сделать его более управляемым и поддерживаемым для будущих целей. Вот тут-то и вступают в действие модули Node.js.
Поскольку каждый модуль представляет собой независимую сущность со своей собственной инкапсулированной функциональностью, им можно управлять как отдельной единицей работы.
Что такое модуль в Node.js?
Как говорилось ранее, модули в Node js — это способ инкапсуляции кода в отдельную логическую единицу. На рынке доступно множество готовых модулей, которые можно использовать в Node js.
Ниже приведены некоторые популярные модули, которые используются в приложении Node js.
- Экспресс рамки – Express – это минимальная и гибкая среда веб-приложений Node js, предоставляющая надежный набор функций для Интернета и мобильный приложений.
- socket.io – Socket.IO обеспечивает двунаправленную связь на основе событий в реальном времени. Этот модуль хорош для создания приложений на основе чата.
- нефрит – Jade – это высокопроизводительный шаблонизатор, реализованный с помощью JavaСценарий для узла и браузеров.
- MongoDB - MongoDB Драйвер Node.js — это официально поддерживаемый драйвер node.js для MongoDB.
- Восстановить – Restify — это облегченная платформа, похожая на Express для создания REST API.
- Bluebird – Bluebird — это полнофункциональная библиотека обещаний с упором на инновационные функции и производительность.
Использование модулей в Node.js
Чтобы использовать модули в Node.js приложение, их сначала необходимо установить с помощью менеджера пакетов Node.
В командной строке ниже показано, как можно установить модуль «express».
npm установить экспресс
- Приведенная выше команда загрузит необходимые файлы, содержащие «экспресс-модули», а также позаботится об установке.
- После установки модуля, чтобы использовать его в приложении Node.js, вам необходимо использовать ключевое слово require. Это ключевое слово — это способ, который Node.js использует для включения функциональности модуля в приложение.
Давайте посмотрим на пример того, как мы можем использовать ключевое слово «require». В приведенном ниже примере кода «Guru99» показано, как использовать функцию require.
var express=require('express'); var app=express(); app.set('view engine','jade'); app.get('/',function(req,res) { }); var server=app.listen(3000,function() { });
- В самом первом операторе мы используем ключевое слово «require» для включения экспресс-модуля. Модуль «Экспресс» представляет собой оптимизированный JavaСценарий библиотека для разработки Node.js. Это один из наиболее часто используемых модулей Node.js.
- После включения модуля, чтобы использовать функциональные возможности модуля, необходимо создать объект. Здесь создается объект экспресс-модуля.
- После подключения модуля с помощью команды «require» и создания «объекта» можно вызвать необходимые методы экспресс-модуля. Здесь мы используем команду set для установки механизма представления, который используется для установки механизма шаблонов, используемого в Node.js.
- Здесь мы используем метод прослушивания, чтобы приложение прослушивало определенный номер порта.
Примечание: -(Для понимания читателя: механизм шаблонов — это подход к внедрению значений в приложение путем получения данных из файлов данных. Эта концепция довольно известна в Angular JS, где фигурные скобки {{ key }} используются для замены значений в веб-страницу. Слово «ключ» в фигурных скобках обычно обозначает переменную, которая будет заменена значением при отображении страницы.)
Как создавать модули NPM
Node.js имеет возможность создавать собственные модули и позволяет включать эти модули в ваше приложение Node.js.
Давайте рассмотрим простой пример того, как мы можем создать собственный модуль и включить его в основной файл приложения. Наш модуль просто выполнит простую задачу по сложению двух чисел.
Давайте выполним следующие шаги, чтобы увидеть, как мы можем создавать модули и включать их в наше приложение.
Ниже приведен пошаговый процесс создания модулей NPM.
Шаг 1) Создайте файл и вставьте код ниже
Создайте файл с именем «Addition.js» и включите приведенный ниже код. Этот файл будет содержать логику вашего модуля.
Ниже приведен код, который будет помещен в этот файл;
var exports=module.exports={}; exports.AddNumber=function(a,b) { return a+b; };
- Ключевое слово «exports» используется для обеспечения фактического доступа к функциям, определенным в этом файле, из других файлов.
- Затем мы определяем функцию под названием «AddNumber». Эта функция определена так, чтобы принимать два параметра: a и b. Функция добавляется в модуль «экспорт», чтобы сделать ее общедоступной функцией, к которой могут получить доступ другие модули приложения.
- Наконец, мы заставляем нашу функцию возвращать добавленное значение параметров.
Теперь мы создали наш собственный модуль, который имеет функцию добавления двух чисел. Пришло время создать приложение, которое будет вызывать этот модуль.
На следующем шаге мы увидим, как создать приложение, которое будет вызывать наш пользовательский модуль.
Шаг 2) Создайте файл приложения
Создайте файл с именем «app.js», который является основным файлом вашего приложения, и добавьте приведенный ниже код.
var Addition=require('./Addition.js'); console.log(Addition.AddNumber(1,2));
- Мы используем ключевое слово «require», чтобы включить эту функциональность в файл Addition.js.
- Поскольку функции в файле Addition.js теперь доступны, мы можем вызвать функцию AddNumber. В функцию мы передаем 2 числа в качестве параметров. Затем мы отображаем значение в консоли.
Результат:
- Когда вы запустите файл app.js, вы получите значение 3 в журнале консоли.
- В результате функция AddNumber в файле Addition.js была вызвана успешно, а возвращаемое значение 3 отобразилось в консоли.
Примечание: – Мы пока не используем «Менеджер пакетов Node» для установки нашего модуля Addition.js. Это потому, что модуль уже является частью нашего проекта на локальном компьютере. Менеджер пакетов Node появляется на картинке, когда вы публикуете модуль в Интернете, что мы увидим в следующем разделе.
Расширение модулей в Node.js
При создании модулей также возможно расширять или наследовать один модуль от другого.
В современном программировании довольно часто создается библиотека общих модулей, а затем при необходимости расширяется функциональность этих общих модулей.
Давайте посмотрим на пример того, как мы можем расширить модули в Node.js.
Шаг 1) Создайте базовый модуль.
В нашем примере создайте файл с именем «Tutorial.js» и поместите приведенный ниже код.
В этом коде мы просто создаем функцию, которая возвращает строку в консоль. Возвращаемая строка: «Guru99 Tutorial».
var exports=module.exports={}; exports.tutorial=function() { console.log("Guru99 Tutorial") }
- Модуль экспорта используется для того, чтобы любая функция, определенная в этом файле, могла быть доступна в других модулях Node.js.
- Мы создаем функцию под названием учебник, которую можно использовать в других модулях Node.js.
- При вызове этой функции мы отображаем строку «Guru99 Tutorial» в консоли.
Теперь мы создали наш базовый модуль под названием Tutorial.js. Пришло время создать еще один модуль, который расширит этот базовый модуль.
Мы рассмотрим, как это сделать, на следующем этапе.
Шаг 2) Далее мы создадим наш расширенный модуль. Создайте новый файл под названием «NodeTutorial.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(); } }
Обратите внимание на следующие ключевые моменты приведенного выше кода.
- Мы используем функцию «require» в самом файле нового модуля. Поскольку мы собираемся расширить существующий файл модуля «Tutorial.js», нам необходимо сначала включить его, прежде чем расширять.
- Затем мы создаем функцию под названием Nodetutorial. Эта функция будет делать 2 вещи:
- Он отправит на консоль строку «Node Tutorial».
- Он отправит строку «Guru99 Tutorial» из базового модуля «Tutorial.js» в наш расширенный модуль «NodeTutorial.js».
- Здесь мы выполняем первый шаг по отправке строки «Node Tutorial» на консоль.
- Следующим шагом будет вызов функции из нашего модуля Tutorial, которая выведет строку «Guru99 Tutorial» в console.log.
Шаг 3) Создайте основной файл app.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
Приведенный выше код выполняет следующие действия:
- Наш основной файл приложения теперь вызывает модуль «NodeTutorial».
- Мы вызываем функцию «NodeTutorial». При вызове этой функции в журнале консоли будет отображаться текст «Node Tutorial».
- Поскольку мы расширили наш модуль Tutorial.js и предоставили функцию pTutor. Он также вызывает модуль учебника в модуле 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 set init-author-name «Guru99».
npm set 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.
Давайте рассмотрим некоторые функции, доступные в менеджере пакетов узла для управления модулями.
- Установка пакетов в глобальном режиме. Модули можно устанавливать на глобальном уровне, что по сути означает, что эти модули будут доступны для всех проектов Node.js на локальном компьютере. В примере ниже показано, как установить «экспресс-модуль» с глобальной опцией.npm install express –глобальный Глобальная опция в приведенном выше операторе позволяет устанавливать модули на глобальном уровне.
- Список всех глобальных пакетов, установленных на локальном компьютере. Это можно сделать, выполнив приведенную ниже команду в командной строке.список npm – глобальныйНиже приведен вывод, который будет показан, если вы ранее установили «экспресс-модуль» в вашей системе. Здесь вы можете увидеть различные модули, установленные на локальном компьютере.
- Установка определенной версии пакета. Иногда может потребоваться установить только определенную версию пакета. Как только вы узнаете имя пакета и соответствующую версию, которую необходимо установить, вы можете использовать команду установки npm для установки этой конкретной версии. В примере ниже показано, как установить модуль с именем подчеркивания с конкретной версией установки 1.7.0npm. подчеркивание @ 1.7.0
- Обновление версии пакета. Иногда в системе может быть более старая версия пакета, и вы можете захотеть обновить его до последней версии, доступной на рынке. Для этого можно использовать команду обновления npm. В примере ниже показано, как обновить пакет подчеркивания до последней версии.подчеркивание обновления npm
- Поиск определенного пакета. Чтобы узнать, доступна ли определенная версия в локальной системе или нет, вы можете использовать команду поиска npm. В приведенном ниже примере будет проверено, установлен ли экспресс-модуль на локальном компьютере или нет.npm поиск экспресс
- Удаление пакета. Вы можете установить пакет так же, как и удалить его. Удаление пакета выполняется с помощью команды удаления npm. В примере ниже показано, как удалить экспресс-модуль.NPM удалить экспресс
Что такое файл package.json
Файл package.json используется для хранения метаданные о конкретном проекте. Эта информация предоставляет менеджеру пакетов Node необходимую информацию, чтобы понять, как следует обрабатывать проект и его зависимости.
Файлы package.json содержат такую информацию, как описание проекта, версия проекта в конкретном дистрибутиве, информация о лицензии и данные конфигурации.
Файл package.json обычно находится в корневом каталоге проекта Node.js.
Рассмотрим на примере, как выглядит структура модуля при его установке через npm.
На снимке ниже показано содержимое файла экспресс-модуля, когда он включен в ваш проект Node.js. На снимке вы можете увидеть файл package.json в папке Express.
Если вы откроете файл package.json, вы увидите в нем много информации.
Ниже приведен снимок части файла. экспресс@~4.13.1 упоминает номер версии используемого экспресс-модуля.
Резюме
- Модуль в Node.js — это логическая инкапсуляция кода в одном модуле. Разделение на модули делает код более управляемым и поддерживаемым для будущих целей.
- На рынке доступно множество модулей, которые можно использовать в Node.js, например express, underscore, MongoDB, и т.д.
- Менеджер пакетов узлов (npm) используется для загрузки и установки модулей, которые затем можно использовать в приложении Node.js.
- Можно создавать собственные модули NPM, расширять эти модули, а также публиковать эти модули.
- Менеджер пакетов Node имеет полный набор команд для управления модулями npm в локальной системе, таких как установка, удаление, поиск и т. д.
- Файл package.json используется для хранения всей информации метаданных модуля npm.