Модулът в Node.js е логично капсулиране на код в една единица. Винаги е добра практика за програмиране винаги да се разделя кодът по такъв начин, че да го направи по-управляем и поддържаем за бъдещи цели. Това е мястото, където модулите в Node.js влизат в действие.
Тъй като всеки модул е независим обект със собствена капсулирана функционалност, той може да се управлява като отделна единица работа.
В този урок ще научите -
- Какво представляват модулите в Node.js
- Използване на модули в Node.js
- Създаване на NPM модули
- Удължаващи модули
- Публикуване на NPM модули
- Управление на пакети на трети страни с npm
- Какво представлява файлът package.json
Какво представляват модулите в Node.js?
Както беше посочено по-рано, модулите в Node js са начин за капсулиране на код в отделна логическа единица. На пазара има много готови модули, които могат да се използват в Node js.
По-долу са някои от популярните модули, които се използват в Node js приложение
- Express framework - Express е минимална и гъвкава рамка за уеб приложения на Node js, която осигурява стабилен набор от функции за мрежата и мобилните приложения.
- Socket.io - Socket.IO позволява двупосочна комуникация, базирана на събития в реално време. Този модул е добър за създаване на приложения, базирани на чат.
- Jade - Jade е високоефективен механизъм за шаблони и е изпълнен с JavaScript за възел и браузъри.
- MongoDB - Драйверът на MongoDB Node.js е официално поддържаният драйвер node.js за MongoDB.
- Restify - restify е лека рамка, подобна на експресната за изграждане на 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;};
- Ключовата дума „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
- Създаваме функция, наречена урок, която може да се използва в други модули 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", първо трябва да го включим, преди да го разширим.
- След това създаваме функция, наречена „Nodetutorial“. Тази функция ще направи 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 Tutorial" също ще бъде показан на конзолата.
Изход:
Тъй като изпълнихме горния код на app.js с помощта на Node, ще получим следния изход във файла console.log
- Урок за възел
- Урок за Guru99
Публикуване на NPM (Node Package Manager) модули
Човек може да публикува свой собствен модул в собственото си хранилище на Github.
Публикувайки модула си на централно място, тогава не сте обременени от необходимостта да се инсталирате на всяка машина, която го изисква.
Вместо това можете да използвате командата за инсталиране на 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 инсталирайте express -global
Глобалната опция в горното изявление е това, което позволява модулите да бъдат инсталирани на глобално ниво.
-
Изброяване на всички глобални пакети, инсталирани на локална машина. Това може да се направи чрез изпълнение на командата по-долу в командния ред
npm списък --global
По-долу е изходът, който ще бъде показан, ако преди това сте инсталирали "експресния модул" на вашата система.
Тук можете да видите различните модули, инсталирани на локалната машина.
-
Инсталиране на конкретна версия на пакет - Понякога може да има изискване да се инсталира само конкретната версия на пакет. След като знаете името на пакета и съответната версия, която трябва да бъде инсталирана, можете да използвате командата npm install, за да инсталирате тази конкретна версия.
Примерът по-долу показва как да инсталирате модула, наречен подчертаване, с конкретна версия 1.7.0
NPM инсталирате [email protected]
-
Актуализиране на версия на пакета - Понякога може да имате по-стара версия на пакет в системата и може да искате да актуализирате до най-новата, налична на пазара. За да направите това, можете да използвате командата за актуализация npm. Примерът по-долу показва как да актуализирате пакета за подчертаване до най-новата версия
npm актуализация долна черта
-
Търсене на определен пакет - За да търсите дали дадена версия е налична в локалната система или не, можете да използвате командата за търсене на npm. Примерът по-долу ще провери дали експресният модул е инсталиран на локалната машина или не.
npm търсене експрес
-
Деинсталиране на пакет - Същият, в който можете да инсталирате пакет, можете също да деинсталирате пакет. Деинсталирането на пакет се извършва с командата за деинсталиране на npm. Примерът по-долу показва как да деинсталирате експресния модул
npm деинсталиране експрес
Какво представлява файлът package.json
Файлът "package.json" се използва за съхраняване на метаданните за определен проект . Тази информация предоставя на мениджъра на пакети Node необходимата информация, за да разбере как трябва да се обработва проектът заедно с неговите зависимости.
Файлите package.json съдържат информация като описание на проекта, версията на проекта в определена дистрибуция, информация за лиценза и данни за конфигурация.
Файлът package.json обикновено се намира в основната директория на проект Node.js.
Нека вземем пример за това как изглежда структурата на модула, когато е инсталиран чрез npm.
Снимката по-долу показва съдържанието на файла на експресния модул, когато е включен във вашия проект Node.js. От моментната снимка можете да видите файла package.json в експресната папка.
Ако отворите файла package.json, ще видите много информация във файла.
По-долу е моментна снимка на част от файла. В express@~4.13.1 посочва номера на версията на модула изрично се използва.
Обобщение
- Модулът в Node.js е логично капсулиране на код в една единица. Разделянето на модули прави кода по-управляем и поддържаем за бъдещи цели
- На пазара се предлагат много модули, които могат да се използват в Node.js като express, подчертаване, MongoDB и др.
- Мениджърът на пакети за възли (npm) се използва за изтегляне и инсталиране на модули, които след това могат да се използват в приложението Node.js.
- Човек може да създава персонализирани NPM модули, да ги разширява и да публикува тези модули.
- Мениджърът на пакети Node има пълен набор от команди за управление на npm модулите в локалната система, като например инсталиране, деинсталиране, търсене и т.н.
- Файлът package.json се използва за съхранение на цялата информация за метаданни за модул npm.