Модули Node.js дают возможность создания слабосвязанных программ, которые масштабируются в соответствии с увеличением сложности проекта. Написание таких модулей может оказаться полезным для сообщества платформы Node.js, а кроме того, позволяет программисту совершенствовать свои навыки.
Модули Node.js могут быть разных типов, например:
- модули для работы с базами данных, примеры:
mongodb,mysql,sequelize(для поддержки ORM); - сетевые модули:
net(работа с TCP- и UDP-сокетами),dns(работа с системой доменных имен),request(библиотека для выполнения HTTP-запросов); - модули для разработки веб-приложений:
ejs(шаблонизатор),socket.io(библиотека для работы с веб-сокетами),passport(библиотека для аутентификации и авторизации пользователей).
Также отметим, что в Node.js есть встроенные и сторонние модули. Встроенные поставляются с Node.js. Некоторые примеры встроенных расширений: fs (работа с файлами), http (работа с протоколом HTTP), crypto (криптографические функции), path (работа с путями). Модули, разработанные сторонними разработчиками, можно установить с помощью менеджера пакетов NPM.
В статье мы как раз рассмотрим создание стороннего модуля, который поможет дизайнерам выбирать цвета для своих проектов, а затем узнаем, как импортировать его куда-либо. После этого вы легко сможете создать модуль Node.js любого типа и выполнять с ним различные операции.
Подготовка
Перед созданием модуля Node.js, установите саму платформу вместе с NPM. Node Package Manager — это менеджер пакетов. Он позволяет управлять зависимостями и устанавливать пакеты, необходимые для разработчиков. Также он содержит большое количество уже готовых пакетов и предоставляет удобный способ их установки, обновления и удаления. Кроме того, NPM позволяет создавать и публиковать свои собственные пакеты для использования другими разработчиками.
Установка Node.js с Node Package Manager не представляет особых трудностей. Рассмотрим ее отдельно для Linux и MacOS и для Windows.
- Для установки Node.js и NPM на Linux и MacOS:
Откройте терминал и выполните следующую инструкцию под root или пользователем с правами sudo:
Теперь установите NPM, выполнив инструкцию:
Проверьте версии платформы и менеджера, выполнив инструкции:
- Для установки Node.js и NPM на Windows:
Скачайте установочный файл Node.js с официального сайта и запустите его. Установите платформу вместе с пакетным менеджером, следуя инструкциям установщика. После установки проверьте версии Node.js и NPM. Для этого, открыв командную строку (нажмите Win+R и введите cmd), выполните инструкции:
Если версии программ успешно отображаются в терминале, значит установка прошла успешно, и можно начать использовать их для разработки вашего первого модуля.
Создаем модуль
Открываем терминал, создаем каталог и переходим туда:
Теперь инициализируем Node Package Manager, чтобы дать возможность импорта:
Флаг -y задействуется для пропуска ненужных диалогов при конфигурировании package.json (этот файл нам еще понадобится). В ответ будет создан package.json с информацией об имени, основном файле, скриптах и отсутствии ошибок в них, а также рядом других параметров (описание, версия, ключевые слова, автор, лицензия и т.д.):
Теперь открываем nano или другой удобный для вас редактор и создаем новый файл. Этот файл необходим для того, чтобы создать точку входа. Вот так это делается на примере nano:
Таким образом мы создадим файл по пути: ~/colors/index.js.
Теперь определяем класс, экземпляр которого будет иметь имя, а также код. Прописываем:
Далее записываем в файл цвета. Давайте сделаем это на примере нескольких оттенков красного:
И создаем функцию, предназначенную для рандомного выбора:
Всё, что хранится в ключе exports, будет открыто при импорте. Теперь сохраняем и закрываем файл (в nano для этого необходимо нажать Ctrl+X, а после Y для сохранения изменений) и приступаем к следующему необходимому шагу.
VDS и VPS
биллингом по всему миру: Россия, Азия и Европа.
Тестируем модуль
Для этого нам потребуются некоторые навыки работы с одним из инструментов: REPL. REPL — это интерактивная среда, которая позволяет пользователю вводить команды на определенном языке программирования, которые затем немедленно выполняются и выводятся на экран. Таким образом, REPL позволяет тестировать и отлаживать код пошагово, не создавая целых программ или скриптов. Пользователь может вводить команды по одной и сразу же видеть результат их исполнения, что делает процесс разработки более быстрым и эффективным. REPL используется для разработки программ не только на JavaScript, но также поддерживает и многие другие языки, в том числе Python, Ruby, Lisp и т.д.
Итак, сначала запускаем REPL простой инструкцией:
Теперь вводим в интерфейсе REPL следующее (здесь мы также используем «родной» язык платформы, JS):
И нажимаем Enter, выводя список наших цветов с их шестнадцатеричными кодами. Вот что вы увидите:
Теперь приступаем собственно к тестированию, вводя:
Программа должна вывести нам случайный цвет. Чтобы удостовериться в этом, попробуйте ввести эту инструкцию еще несколько раз. На этом тестирование можно считать успешно завершенным, но нужно не забыть выйти из REPL следующей инструкцией:
Сохраняем локальный модуль в качестве зависимости
Это понадобится нам, чтобы обеспечить работу модулей независимо от условий (например, при изменении директории проекта). Чтобы сделать это, создаем новый модуль. Располагаем его в какой-либо другой директории за пределами нашего проекта и переходим туда:
Далее инициализируем новый модуль при помощи Node Package Manager:
NPM сгенерирует нам новый package.json. Далее инсталлируем туда наш модуль colors c записью, вот так:
Задействуем nano:
Мы должны увидеть, что добавились строчки зависимостей:
Закрываем файл и проверяем расположение нашего основного модуля, вот так:
В выводе должно появиться имя нашего модуля. Далее вводим:
И проверяем корректность работы:
Эта инструкция в новом index.js позволит вам импортировать рабочий модуль с цветами, а затем выбрать случайный оттенок и получить информацию о том, что с ним делать.
Теперь сохраняем изменения, закрываем файл и запускаем скрипт:
В ответ мы получим случайный цвет с рекомендацией и шестнадцатеричным кодом:
Чтобы убедиться в том, что программа выдает рандомные цвета, запустите ее еще несколько раз. Теперь можно добавить любое количество новых цветов, только не забывайте после этого обновлять модуль инструкцией:
А мы переходим к завершающему этапу.
Выполняем привязку локального модуля
Это понадобится нам для того, чтобы пакеты, содержащие наш модуль, обновлялись сами при вносимых изменениях в самом модуле. В процессе разработки программист постоянно вносит изменения в код, и обновлять все используемые этот пакет зависимости вручную, конечно же, крайне неудобно. Поэтому в первую очередь выполняем удаление локального модуля инструкцией:
Теперь добавляем глобальную ссылку следующим образом:
Далее возвращаемся в директорию other_nodejs_project:
Вот и всё, мы привязали локальный модуль, теперь проверяем, как он работает, уже привычным способом:
В результате мы получим рандомное значение с комментарием, как в примере выше:
Осталось совсем немного, проверить применение обновлений:
И добавляем вниз (вместо зеленого можно выбрать и любой другой цвет):
Сохраняем и закрываем файл и опять открываем его, но в другой директории:
Добавляем внизу:
Еще раз сохраняем и закрываем файл и запускаем его для проверки:
Вывод должен быть примерно таким:
Как видим, нам не пришлось обновлять модуль через NPM. Добавим, что такой способ обновления подойдет, когда разработчики активно работают с кодом, постоянно изменяя его. В противном случае достаточно использования инструкции npm install по установке модуля.
Разверните свой Node.js-проект на VDS
в Timeweb Cloud
477 ₽/мес
657 ₽/мес
Подводим итоги
Итак, мы научились создавать сами модули и тестировать их, а также обеспечивать их независимую работу и выполнять привязку для того, чтобы облегчить обновление приложений, использующих наши модули. Желаем успехов в создании новых модулей!
