Модуль у Node.js - це логічна інкапсуляція коду в одному блоці. Завжди є доброю практикою програмування завжди розділяти код таким чином, що робить його більш керованим та ремонтопридатним для майбутніх цілей. Ось тут починають діяти модулі в Node.js.
Оскільки кожен модуль є незалежною суттю зі своєю інкапсульованою функціональністю, ним можна керувати як окремою одиницею роботи.
У цьому підручнику ви дізнаєтесь-
- Що таке модулі в Node.js
- Використання модулів у Node.js
- Створення модулів NPM
- Розширення модулів
- Видання модулів NPM
- Управління сторонніми пакетами за допомогою npm
- Що таке файл package.json
Що таке модулі в Node.js?
Як було сказано раніше, модулі в Node js - це спосіб інкапсуляції коду в окрему логічну одиницю. На ринку доступно багато готових модулів, які можна використовувати в Node js.
Нижче наведено деякі популярні модулі, які використовуються в програмі Node js
- Експрес-фреймворк - Express - це мінімальна та гнучка фреймворк веб-додатків Node js, що забезпечує надійний набір функцій для Інтернету та мобільних додатків.
- Socket.io - Socket.IO забезпечує двосторонній зв'язок в реальному часі на основі подій. Цей модуль підходить для створення додатків на базі чату.
- Jade - Jade - це високопродуктивний механізм шаблонів, який реалізований з JavaScript для вузлів та браузерів.
- MongoDB - Драйвер MongoDB Node.js є офіційно підтримуваним драйвером node.js для MongoDB.
- Restify - restify - це легкий фреймворк, подібний до Express для побудови API REST
- 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}} використовуються для замінює значення на веб-сторінці. Слово "ключ" у фігурних дужках в основному позначає змінну, яка буде замінена значенням при відображенні сторінки.)
- Тут ми використовуємо метод прослуховування, щоб змусити програму прослуховувати певний номер порту.
Створення модулів NPM
Node.js має можливість створювати власні модулі та дозволяє включати ці користувацькі модулі у свою програму Node.js.
Давайте розглянемо простий приклад того, як ми можемо створити власний модуль та включити його в наш основний файл програми. Наш модуль просто виконає просте завдання скласти два числа.
Давайте виконуватимемо наведені нижче дії, щоб побачити, як ми можемо створювати модулі та включати їх у наш додаток.
Крок 1) Створіть файл під назвою "Addition.js" і включіть код нижче. Цей файл міститиме логіку для вашого модуля.
Нижче наведено код, який буде входити до цього файлу;
var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
- Ключове слово "export" використовується для того, щоб забезпечити доступ до функцій, визначених у цьому файлі, інших файлів.
- Потім ми визначаємо функцію, яка називається "AddNumber". Ця функція визначена для прийому 2 параметрів, a та b. Функція додана до модуля "експортує", щоб зробити функцію загальнодоступною, до якої можуть отримати доступ інші модулі програми.
- Нарешті ми робимо так, щоб наша функція повертала додану вартість параметрів.
Тепер, коли ми створили власний модуль, який має функцію додавання 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.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();}}
Зверніть увагу, наступні ключові моменти щодо вищевказаного коду
- Ми використовуємо функцію "вимагати" у самому новому файлі модуля. Оскільки ми збираємося розширити існуючий файл модуля "Tutorial.js", нам потрібно спочатку включити його перед його розширенням.
- Потім ми створюємо функцію під назвою "Нодетуториал". Ця функція зробить 2 речі,
- Він надішле на консоль рядок "Підручник з вузлів".
- Він надішле рядок "Guru99 Tutorial" від базового модуля "Tutorial.js" до нашого розширеного модуля "NodeTutorial.js".
- Тут ми виконуємо перший крок для надсилання рядка до "Підручника з вузлів" на консоль.
- Наступним кроком є виклик функції з нашого модуля Підручник, який виведе рядок "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".
Вихід:
Оскільки ми виконали вищезазначений код 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 встановлено 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" має можливість керувати модулями, які потрібні програмам Node.js.
Давайте розглянемо деякі функції, доступні в менеджері пакетів вузлів для управління модулями
-
Встановлення пакетів у глобальному режимі - Модулі можна встановлювати на глобальному рівні, що в основному означає, що ці модулі будуть доступні для всіх проектів Node.js на локальній машині. У наведеному нижче прикладі показано, як встановити "експрес-модуль" із глобальною опцією.
npm встановити express -global
Глобальний варіант у наведеному вище твердженні - це те, що дозволяє встановлювати модулі на глобальному рівні.
-
Список усіх глобальних пакетів, встановлених на локальній машині. Це можна зробити, виконавши наведену нижче команду в командному рядку
npm список - глобальний
Нижче наведено результати, які будуть показані, якщо ви раніше встановили "експрес-модуль" у вашій системі.
Тут ви можете побачити різні модулі, встановлені на локальній машині.
-
Встановлення певної версії пакету - Іноді може виникнути потреба встановити лише певну версію пакета. Дізнавшись назву пакета та відповідну версію, яку потрібно встановити, ви можете скористатися командою npm install для встановлення цієї конкретної версії.
У наведеному нижче прикладі показано, як встановити модуль під назвою підкреслення з конкретною версією 1.7.0
npm встановити підкреслення@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, ви побачите багато інформації у файлі.
Нижче наведено знімок частини файлу. Express@~4.13.1 згадує номер версії модуля експрес використовується.
Резюме
- Модуль у Node.js - це логічна інкапсуляція коду в одному блоці. Поділ на модулі робить код більш керованим та ремонтопридатним для майбутніх цілей
- На ринку доступно багато модулів, які можна використовувати в Node.js, такі як express, підкреслення, MongoDB тощо.
- Менеджер пакетів вузлів (npm) використовується для завантаження та встановлення модулів, які потім можна використовувати в програмі Node.js.
- Можна створювати власні модулі NPM, розширювати ці модулі, а також публікувати ці модулі.
- Менеджер пакетів Node має повний набір команд для управління модулями npm в локальній системі, такими як встановлення, видалення, пошук тощо.
- Файл package.json використовується для зберігання всієї інформації про метадані модуля npm.