Модуль в Node.js - это логическая инкапсуляция кода в единый блок. Всегда хорошая практика программирования - всегда разделять код таким образом, чтобы сделать его более управляемым и поддерживаемым для будущих целей. Вот тут и вступают в действие модули в Node.js.
Поскольку каждый модуль является независимым объектом с собственной инкапсулированной функциональностью, им можно управлять как отдельной единицей работы.
В этом руководстве вы узнаете:
- Что такое модули в Node.js
- Использование модулей в Node.js
- Создание модулей NPM
- Расширение модулей
- Публикация модулей NPM
- Управление сторонними пакетами с помощью npm
- Что такое файл package.json
Что такое модули в Node.js?
Как указывалось ранее, модули в Node js - это способ инкапсуляции кода в отдельную логическую единицу. На рынке доступно множество готовых модулей, которые можно использовать в Node js.
Ниже приведены некоторые из популярных модулей, которые используются в приложении Node js.
- Платформа Express - Express - это минимальная и гибкая платформа веб-приложений Node js, которая предоставляет надежный набор функций для веб-приложений и мобильных приложений.
- Socket.io - Socket.IO обеспечивает двунаправленную связь на основе событий в реальном времени. Этот модуль удобен для создания приложений для общения в чате.
- Jade - Jade - это высокопроизводительный шаблонизатор, реализованный с помощью JavaScript для узлов и браузеров.
- MongoDB - драйвер MongoDB Node.js - это официально поддерживаемый драйвер node.js для MongoDB.
- Restify - 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» для включения экспресс-модуля. Модуль "express" - это оптимизированная библиотека JavaScript для разработки на Node.js. Это один из наиболее часто используемых модулей Node.js.
- После включения модуля, чтобы использовать функциональные возможности модуля, необходимо создать объект. Здесь создается объект экспресс-модуля.
- После того, как модуль включен с помощью команды «require» и создан «объект», могут быть вызваны требуемые методы экспресс-модуля. Здесь мы используем команду set для установки механизма просмотра, который используется для настройки механизма создания шаблонов, используемого в Node.js.
Примечание: - (Для понимания читателя; механизм шаблонов - это подход для внедрения значений в приложение путем сбора данных из файлов данных. Эта концепция довольно известна в Angular JS, где фигурные скобки {{key}} используются для заменяет значения на веб-странице. Слово «ключ» в фигурных скобках в основном обозначает переменную, которая будет заменена значением при отображении страницы.)
- Здесь мы используем метод listen to, чтобы приложение прослушивало определенный номер порта.
Создание модулей NPM
Node.js имеет возможность создавать настраиваемые модули и позволяет вам включать эти настраиваемые модули в ваше приложение Node.js.
Давайте посмотрим на простой пример того, как мы можем создать наш собственный модуль и включить этот модуль в наш основной файл приложения. Наш модуль просто выполнит простую задачу сложения двух чисел.
Давайте выполним следующие шаги, чтобы увидеть, как мы можем создавать модули и включать их в наше приложение.
Шаг 1) Создайте файл с именем «Addition.js» и включите приведенный ниже код. Этот файл будет содержать логику для вашего модуля.
Ниже приведен код, который войдет в этот файл;
var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
- Ключевое слово "exports" используется, чтобы гарантировать, что к функциям, определенным в этом файле, действительно могут получить доступ другие файлы.
- Затем мы определяем функцию под названием «AddNumber». Эта функция определена, чтобы принимать 2 параметра, a и b. Функция добавляется в модуль "exports", чтобы сделать функцию общедоступной, к которой могут получить доступ другие модули приложения.
- Наконец, мы заставляем нашу функцию возвращать добавленное значение параметров.
Теперь, когда мы создали наш настраиваемый модуль, который позволяет добавлять 2 числа. Пришло время создать приложение, которое будет вызывать этот модуль.
На следующем шаге мы действительно увидим, как создать приложение, которое будет вызывать наш настраиваемый модуль.
Шаг 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 было отображено в консоли.
Примечание: - Мы пока не используем «Диспетчер пакетов узлов» для установки нашего модуля Addition.js. Это потому, что модуль уже является частью нашего проекта на локальном компьютере. Диспетчер пакетов Node появляется на картинке, когда вы публикуете модуль в Интернете, что мы увидим в следующем разделе.
Расширение модулей
При создании модулей также можно расширять или наследовать один модуль от другого.
В современном программировании довольно часто создают библиотеку общих модулей, а затем при необходимости расширяют функциональность этих общих модулей.
Давайте посмотрим на пример того, как мы можем расширять модули в Node.js.
Шаг 1) Создайте базовый модуль.
В нашем примере создайте файл «Tutorial.js» и поместите приведенный ниже код.
В этом коде мы просто создаем функцию, которая возвращает строку в консоль. Возвращенная строка - «Учебник по Guru99».
var exports=module.exports={};exports.tutorial=function(){console.log("Guru99 Tutorial")}
- Модуль экспорта используется для того, чтобы любая функция, определенная в этом файле, была доступна в других модулях в Node.js.
- Мы создаем функцию под названием tutorial, которую можно использовать в других модулях 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=TutorPTutor.tutorial();}}Orvar Tutor=require('./Tutorial.js');exports.NodeTutorial=function(){console.log("Node Tutorial")this.pTutor = function (){var PTutor=TutorPTutor.tutorial();}}
Обратите внимание, что следующие ключевые моменты о приведенном выше коде
- Мы используем функцию «require» в самом файле нового модуля. Поскольку мы собираемся расширить существующий файл модуля «Tutorial.js», нам нужно сначала включить его, прежде чем расширять.
- Затем мы создаем функцию под названием «Nodetutorial». Эта функция будет делать 2 вещи:
- Он отправит на консоль строку «Учебное пособие по узлу».
- Он отправит строку «Guru99 Tutorial» из базового модуля «Tutorial.js» в наш расширенный модуль «NodeTutorial.js».
- Здесь мы выполняем первый шаг по отправке строки в «Учебник по узлу» на консоль.
- Следующим шагом является вызов функции из нашего модуля Tutorial, которая выведет строку «Guru99 Tutorial» в console.log.
Шаг 3) Создайте свой основной файл app.js, который является вашим основным файлом приложения, и включите приведенный ниже код.
var localTutor=require('./NodeTutorial.js');localTutor.NodeTutorial();localTutor.NodeTutorial.pTutor();Or use this codevar tut = new localTutor.NodeTutorial(); // Create and save objecttut.pTutor(); // Call function on object
Приведенный выше код выполняет следующие действия;
- Наш основной файл приложения теперь вызывает модуль «NodeTutorial».
- Мы вызываем функцию «NodeTutorial». При вызове этой функции в журнале консоли будет отображаться текст «Учебник по узлу».
- Поскольку мы расширили наш модуль Tutorial.js и представили функцию под названием pTutor. Он также вызывает учебный модуль в модуле Tutorial.js, и текст «Guru99 Tutorial» также будет отображаться на консоли.
Выход:
Поскольку мы выполнили приведенный выше код app.js с помощью Node, мы получим следующий вывод в файле console.log
- Учебное пособие по узлам
- Guru99 Учебник
Публикация модулей NPM (Node Package Manager)
Можно опубликовать собственный модуль в собственном репозитории Github.
Публикуя свой модуль в централизованном хранилище, вам не нужно устанавливать себя на каждую машину, которая этого требует.
Вместо этого вы можете использовать команду install npm и установить опубликованный модуль npm.
Чтобы опубликовать модуль npm, необходимо выполнить следующие шаги.
Шаг 1) Создайте свой репозиторий на GitHub (онлайн-инструмент управления репозиторием кода). Его можно использовать для размещения репозиториев кода.
Шаг 2 ) Вам необходимо сообщить местной установке npm, кто вы. Это означает, что нам нужно сообщить npm, кто является автором этого модуля, каков идентификатор электронной почты и любой доступный URL-адрес компании, который необходимо связать с этим идентификатором. Все эти сведения будут добавлены в ваш модуль npm после его публикации.
Приведенные ниже команды устанавливают имя, адрес электронной почты и URL-адрес автора модуля npm.
npm устанавливает init.author.name "Guru99".
npm set init.author.email « Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для его просмотра».
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.1git push origin master --tags
Шаг 6) Опубликуйте модуль. Последний этап - опубликовать модуль в реестре npm. Это делается с помощью следующей команды.
npm publish
Управление сторонними пакетами с помощью npm
Как мы видели, «диспетчер пакетов узлов» имеет возможность управлять модулями, которые требуются приложениям Node.js.
Давайте посмотрим на некоторые функции, доступные в диспетчере пакетов узлов для управления модулями.
-
Установка пакетов в глобальном режиме - модули могут быть установлены на глобальном уровне, что в основном означает, что эти модули будут доступны для всех проектов Node.js на локальном компьютере. В приведенном ниже примере показано, как установить «экспресс-модуль» с глобальной опцией.
npm install express -global
Глобальная опция в приведенном выше утверждении - это то, что позволяет устанавливать модули на глобальном уровне.
-
Список всех глобальных пакетов, установленных на локальном компьютере. Это можно сделать, выполнив приведенную ниже команду в командной строке.
список npm - глобальный
Ниже приведен результат, который будет показан, если вы ранее установили «экспресс-модуль» в своей системе.
Здесь вы можете увидеть различные модули, установленные на локальном компьютере.
-
Установка определенной версии пакета. Иногда может потребоваться установить только определенную версию пакета. Когда вы знаете имя пакета и соответствующую версию, которую необходимо установить, вы можете использовать команду npm install для установки этой конкретной версии.
В приведенном ниже примере показано, как установить модуль подчеркивания с конкретной версией 1.7.0.
npm установить [email protected]
-
Обновление версии пакета. Иногда у вас может быть более старая версия пакета в системе, и вы можете захотеть обновить ее до последней, доступной на рынке. Для этого можно использовать команду npm update. В приведенном ниже примере показано, как обновить пакет подчеркивания до последней версии.
подчеркивание обновления npm
-
Поиск определенного пакета. Чтобы узнать, доступна ли конкретная версия в локальной системе или нет, вы можете использовать команду поиска npm. В приведенном ниже примере проверяется, установлен ли экспресс-модуль на локальном компьютере или нет.
npm поиск экспресс
-
Удаление пакета - то же самое, в котором вы можете установить пакет, вы также можете удалить пакет. Удаление пакета выполняется с помощью команды удаления npm. В приведенном ниже примере показано, как удалить экспресс-модуль.
npm удалить экспресс
Что такое файл package.json
Файл «package.json» используется для хранения метаданных о конкретном проекте . Эта информация предоставляет диспетчеру пакетов Node информацию, необходимую для понимания того, как следует обрабатывать проект вместе с его зависимостями.
Файлы package.json содержат такую информацию, как описание проекта, версия проекта в конкретном дистрибутиве, информация о лицензии и данные конфигурации.
Файл package.json обычно находится в корневом каталоге проекта Node.js.
Рассмотрим пример того, как выглядит структура модуля при его установке через npm.
На снимке ниже показано содержимое файла экспресс-модуля, когда он включен в ваш проект Node.js. На снимке вы можете увидеть файл package.json в папке express.
Если вы откроете файл package.json, вы увидите в нем много информации.
Ниже приведен снимок части файла. Express@~4.13.1 упоминает номер версии модуля экспресс используется.
Резюме
- Модуль в Node.js - это логическая инкапсуляция кода в единый блок. Разделение на модули делает код более управляемым и поддерживаемым для будущих целей.
- На рынке доступно множество модулей, которые можно использовать в Node.js, например, express, underscore, MongoDB и т. Д.
- Диспетчер пакетов узлов (npm) используется для загрузки и установки модулей, которые затем можно использовать в приложении Node.js.
- Можно создавать собственные модули NPM, расширять эти модули, а также публиковать эти модули.
- В диспетчере пакетов Node есть полный набор команд для управления модулями npm в локальной системе, таких как установка, удаление, поиск и т. Д.
- Файл package.json используется для хранения всей информации о метаданных для модуля npm.