Modul v Node.js je logična enkapsulacija kode v eno enoto. Vedno je dobra praksa programiranja, da vedno ločite kodo tako, da je bolj obvladljiva in vzdržna za prihodnje namene. Tu začnejo delovati moduli v Node.js.
Ker je vsak modul neodvisna enota s svojo zaprto funkcionalnostjo, ga je mogoče upravljati kot ločeno enoto dela.
V tej vadnici boste izvedeli-
- Kaj so moduli v Node.js
- Uporaba modulov v Node.js
- Ustvarjanje NPM modulov
- Razširitveni moduli
- Objavljanje NPM modulov
- Upravljanje paketov drugih proizvajalcev z npm
- Kaj je datoteka package.json
Kaj so moduli v Node.js?
Kot smo že omenili, so moduli v Node js način kapsuliranja kode v ločeni logični enoti. Na trgu je na voljo veliko gotovih modulov, ki jih je mogoče uporabiti znotraj Node js.
Spodaj je nekaj priljubljenih modulov, ki se uporabljajo v aplikaciji Node js
- Express framework - Express je minimalno in prilagodljivo ogrodje spletnih aplikacij Node js, ki ponuja robusten nabor funkcij za splet in mobilne aplikacije.
- Socket.io - Socket.IO omogoča sprotno dvosmerno komunikacijo na podlagi dogodkov. Ta modul je primeren za ustvarjanje aplikacij, ki temeljijo na klepetu.
- Jade - Jade je visoko zmogljiv mehanizem za predloge in je implementiran z JavaScriptom za vozlišča in brskalnike.
- MongoDB - Gonilnik MongoDB Node.js je uradno podprt gonilnik node.js za MongoDB.
- Restify - restify je lahek okvir, podoben izrazu za izdelavo API-jev REST
- Bluebird - Bluebird je popolna knjižnica obljub s poudarkom na inovativnih funkcijah in zmogljivosti
Uporaba modulov v Node.js
Za uporabo modulov v aplikaciji Node.js jih je treba najprej namestiti z upraviteljem paketov Node.
Spodnja ukazna vrstica prikazuje, kako je mogoče namestiti modul "express".
npm namestite ekspresno
- Zgornji ukaz bo prenesel potrebne datoteke, ki vsebujejo "express module", in poskrbel tudi za namestitev
- Ko je modul nameščen, morate za uporabo modula v aplikaciji Node.js uporabiti ključno besedo 'require'. Ta ključna beseda je način, ki ga Node.js uporablja za vključitev funkcionalnosti modula v aplikacijo.
Oglejmo si primer, kako lahko uporabimo ključno besedo "require". Spodnji primer kode "Guru99" prikazuje, kako uporabljati funkcijo require
var express=require('express');var app=express();app.set('view engine','jade');app.get('/',function(req,res){});var server=app.listen(3000,function(){});
- V prvem stavku uporabljamo ključno besedo "require" za vključitev modula express. Modul "express" je optimizirana knjižnica JavaScript za razvoj Node.js. To je eden najpogosteje uporabljenih modulov Node.js.
- Po vključitvi modula je treba za uporabo funkcije znotraj modula ustvariti objekt. Tu je ustvarjen objekt modula express.
- Ko je modul vključen z ukazom "require" in je ustvarjen "objekt", je mogoče uporabiti zahtevane metode hitrega modula. Tu uporabljamo ukaz set za nastavitev mehanizma pogleda, ki se uporablja za nastavitev mehanizma za predloge, ki se uporablja v Node.js.
Opomba: - (Samo za bralčevo razumevanje; mehanizem za predloge je pristop za vbrizgavanje vrednosti v aplikacijo z zbiranjem podatkov iz podatkovnih datotek. Ta koncept je zelo znan v Angular JS, kjer se kodraste oklepaje {{key}} uporabljajo za nadomešča vrednosti na spletni strani. Beseda "ključ" v kodrastih oklepajih v bistvu označuje spremenljivko, ki bo nadomeščena z vrednostjo, ko bo stran prikazana.)
- Tu uporabljamo metodo poslušanja, da program posluša določeno številko vrat.
Ustvarjanje NPM modulov
Node.js lahko ustvarja module po meri in vam omogoča, da te module po meri vključite v svojo aplikacijo Node.js.
Oglejmo si preprost primer, kako lahko ustvarimo lasten modul in ga vključimo v našo glavno aplikacijsko datoteko. Naš modul bo naredil preprosto nalogo seštevanja dveh številk.
Sledimo spodnjim korakom, da vidimo, kako lahko ustvarimo module in jih vključimo v našo aplikacijo.
Korak 1) Ustvarite datoteko z imenom "Addition.js" in vključite spodnjo kodo. Ta datoteka bo vsebovala logiko za vaš modul.
Spodaj je koda, ki bi šla v to datoteko;
var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
- Ključna beseda "Izvozi" se uporablja za zagotovitev, da lahko druge datoteke dejansko dostopajo do funkcije, opredeljene v tej datoteki.
- Nato definiramo funkcijo, imenovano "AddNumber". Ta funkcija je določena za dva parametra, a in b. Funkcija je dodana modulu "izvozi", da postane funkcija javna funkcija, do katere lahko dostopajo drugi aplikacijski moduli.
- Končno poskrbimo, da naša funkcija vrne dodano vrednost parametrov.
Zdaj, ko smo ustvarili naš modul po meri, ki ima funkcijo dodajanja 2 številk. Zdaj je čas, da ustvarite aplikacijo, ki bo poklicala ta modul.
V naslednjem koraku bomo dejansko videli, kako ustvariti aplikacijo, ki bo poklicala naš modul po meri.
Korak 2) Ustvarite datoteko z imenom "app.js", ki je vaša glavna datoteka aplikacije, in dodajte spodnjo kodo
var Addition=require('./Addition.js');console.log(Addition.AddNumber(1,2));
- Za vključitev funkcije v datoteko Addition.js uporabljamo ključno besedo "require".
- Ker so funkcije v datoteki Addition.js zdaj dostopne, lahko zdaj pokličemo funkcijo AddNumber. V funkciji kot parametra posredujemo 2 številki. Nato vrednost prikažemo v konzoli.
Izhod :
- Ko zaženete datoteko app.js, boste v dnevniku konzole dobili izhodno vrednost 3.
- Rezultat tega je, ker je bila funkcija AddNumber v datoteki Addition.js uspešno poklicana, vrnjena vrednost 3 pa je bila prikazana v konzoli.
Opomba: - Za namestitev modula Addition.js še ne uporabljamo »Upravitelja paketov vozlišč«. To je zato, ker je modul že del našega projekta na lokalnem računalniku. Upravitelj paketov Node se prikaže na sliki, ko v internetu objavite modul, kar vidimo v naslednji temi.
Razširitveni moduli
Pri ustvarjanju modulov je mogoče tudi razširiti ali podedovati en modul od drugega.
V sodobnem programiranju je povsem običajno zgraditi knjižnico skupnih modulov in nato po potrebi razširiti funkcionalnost teh skupnih modulov.
Oglejmo si primer, kako lahko razširimo module v Node.js.
Korak 1) Ustvarite osnovni modul.
V našem primeru ustvarite datoteko z imenom "Tutorial.js" in vstavite spodnjo kodo.
V tej kodi samo ustvarjamo funkcijo, ki vrne niz v konzolo. Vrnjeni niz je "Vadnica za Guru99".
var exports=module.exports={};exports.tutorial=function(){console.log("Guru99 Tutorial")}
- Modul za izvoz se uporablja tako, da je lahko katera koli funkcija, določena v tej datoteki, na voljo v drugih modulih v Node.js
- Ustvarjamo funkcijo, imenovano tutorial, ki se lahko uporablja v drugih modulih Node.js.
- Ko je ta funkcija poklicana, v konzoli prikažemo niz "Vadnica za Guru99".
Zdaj, ko smo ustvarili svoj osnovni modul, imenovan Tutorial.js. Zdaj je čas, da ustvarite nov modul, ki bo razširil ta osnovni modul.
Kako to narediti, bomo raziskali v naslednjem koraku.
Korak 2) Nato bomo ustvarili naš razširjeni modul. Ustvarite novo datoteko z imenom "NodeTutorial.js" in v datoteko vstavite spodnjo kodo.
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();}}
Naslednje ključne točke o zgornji kodi
- V novi datoteki modula uporabljamo funkcijo "require". Ker bomo obstoječo datoteko modula "Tutorial.js" razširili, jo moramo najprej razširiti, preden jo razširimo.
- Nato ustvarimo funkcijo, imenovano "Nodetutorial". Ta funkcija bo naredila dve stvari,
- Na konzolo bo poslal niz "Vadnica za vozlišče".
- Vrstico "Guru99 Tutorial" bo poslal iz osnovnega modula "Tutorial.js" v naš razširjeni modul "NodeTutorial.js".
- Tu izvajamo prvi korak za pošiljanje niza v "Vadnico za vozlišče" na konzolo.
- Naslednji korak je klic funkcije iz našega modula Vadnica, ki bo v console.log izpisal niz "Vadnica Guru99".
Korak 3) Ustvarite svojo glavno datoteko app.js, ki je vaša glavna aplikacija, in vključite spodnjo kodo.
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
Zgornja koda naredi naslednje stvari;
- Naša glavna prijavna datoteka zdaj pokliče modul "NodeTutorial".
- Kličemo funkcijo "NodeTutorial". S klicem te funkcije se v dnevniku konzole prikaže besedilo "Vadnica za vozlišče".
- Ker smo razširili modul Tutorial.js in izpostavili funkcijo, imenovano pTutor. Pokliče tudi modul vadnice v modulu Tutorial.js, na konzoli pa bo prikazano tudi besedilo "Guru99 Tutorial".
Izhod:
Ker smo zgornjo kodo app.js izvedli z uporabo Node, bomo v datoteki console.log dobili naslednji izhod
- Vadnica za vozlišče
- Vadnica za Guru99
Objavljanje modulov NPM (Upravitelj paketov vozlišč)
Svoj lastni modul lahko objavite v lastnem skladišču Github.
Z objavo modula na osrednji lokaciji se nato ne obremenjujete s tem, da se morate namestiti na vsak računalnik, ki to zahteva.
Namesto tega lahko uporabite namestitveni ukaz npm in namestite svoj objavljeni modul npm.
Za objavo modula npm je treba upoštevati naslednje korake
1. korak: Ustvarite svoje skladišče na GitHub (orodje za upravljanje spletnega skladišča kod). Uporablja se lahko za gostovanje vaših skladišč kod.
Korak 2 ) Lokalni namestitvi npm morate povedati, kdo ste. Kar pomeni, da moramo npm povedati, kdo je avtor tega modula, kakšen je e-poštni ID in kateri koli URL podjetja, ki je na voljo in mora biti povezan s tem id. Vse te podrobnosti bodo dodane modulu npm, ko bo objavljen.
Spodnji ukazi določajo ime, e-pošto in URL avtorja modula npm.
npm nastavite init.author.name "Guru99."
npm set init.author.email " Ta e-poštni naslov je zaščiten proti smetenju. Če ga želite videti, omogočite Javascript."
npm nastavljen init.author.url http://Guru99.com
Korak 3) Naslednji korak je prijava v npm z uporabo poverilnic, podanih v zadnjem koraku. Za prijavo morate uporabiti spodnji ukaz
npm login
Korak 4) Inicializacija paketa - Naslednji korak je inicializacija paketa, da ustvarite datoteko package.json. To lahko storite z izdajo spodnjega ukaza
npm init
Ko izdate zgornji ukaz, boste pozvani, da dobite nekaj vprašanj. Najpomembnejša je številka različice vašega modula.
5. korak) Objava v GitHub - Naslednji korak je objava izvornih datotek v GitHub. To lahko storite tako, da zaženete spodnje ukaze.
git add.git commit -m "Initial release"git tag v0.0.1git push origin master --tags
6. korak) Objava modula - zadnji del je objava modula v registru npm. To se naredi s spodnjim ukazom.
npm publish
Upravljanje paketov tretjih oseb z npm
Kot smo videli, ima "Upravitelj paketov vozlišč" možnost upravljanja modulov, ki jih zahtevajo aplikacije Node.js.
Oglejmo si nekatere funkcije, ki so na voljo v upravljalniku paketov vozlišč za upravljanje modulov
-
Namestitev paketov v globalnem načinu - Module je mogoče namestiti na globalni ravni, kar v bistvu pomeni, da bi bili ti moduli na voljo za vse projekte Node.js na lokalnem računalniku. Spodnji primer prikazuje, kako namestiti "express module" z globalno možnostjo.
npm namestite express -global
Globalna možnost v zgornji izjavi je tisto, kar omogoča namestitev modulov na globalni ravni.
-
Naštevanje vseh globalnih paketov, nameščenih na lokalnem računalniku. To lahko storite z izvajanjem spodnjega ukaza v ukaznem pozivu
npm seznam --global
Spodaj je prikazan izhod, ki je prikazan, če ste v svoj sistem že namestili "express module".
Tu si lahko ogledate različne module, nameščene na lokalnem računalniku.
-
Namestitev določene različice paketa - Včasih je morda treba namestiti samo določeno različico paketa. Ko poznate ime paketa in ustrezno različico, ki jo je treba namestiti, lahko z ukazom npm install namestite to različico.
Spodnji primer prikazuje, kako namestiti modul, imenovan podčrtaj, z določeno različico 1.7.0
npm namestite podč[email protected]
-
Posodabljanje različice paketa - Včasih imate morda v sistemu starejšo različico paketa in boste morda želeli posodobiti na najnovejšo, ki je na voljo na trgu. Za to lahko uporabimo ukaz za posodobitev npm. Spodnji primer prikazuje, kako posodobiti podčrtaj na najnovejšo različico
npm posodobitev podčrtaj
-
Iskanje določenega paketa - Če želite poiskati, ali je določena različica na voljo v lokalnem sistemu ali ne, lahko uporabite ukaz za iskanje npm. Spodnji primer bo preveril, ali je ekspresni modul nameščen na lokalnem računalniku ali ne.
npm iskalni izraz
-
Odstranitev paketa - Isto, v katero lahko namestite paket, lahko tudi odstranite paket. Odstranitev paketa se izvede z ukazom za odstranitev npm. Spodnji primer prikazuje, kako odstraniti ekspresni modul
npm odstraniti ekspresno
Kaj je datoteka package.json
Datoteka "package.json" se uporablja za shranjevanje metapodatkov o določenem projektu . Te informacije upravitelju paketov Node nudijo potrebne informacije, da razume, kako je treba ravnati s projektom skupaj z njegovimi odvisnostmi.
Datoteke package.json vsebujejo informacije, kot so opis projekta, različica projekta v določeni distribuciji, informacije o licenci in podatki o konfiguraciji.
Datoteka package.json se običajno nahaja v korenskem imeniku projekta Node.js.
Vzemimo primer, kako izgleda struktura modula, ko je nameščen prek npm.
Spodnji posnetek prikazuje vsebino datoteke modula express, ko je vključen v vaš projekt Node.js. Na posnetku si lahko ogledate datoteko package.json v mapi express.
Če odprete datoteko package.json, boste v njej videli veliko informacij.
Spodaj je posnetek dela datoteke. Express@~4.13.1 omenja se uporabi številka različica hitre modula.
Povzetek
- Modul v Node.js je logična enkapsulacija kode v eno enoto. Ločitev na module naredi kodo bolj obvladljivo in vzdržno za prihodnje namene
- Na trgu je na voljo veliko modulov, ki jih je mogoče uporabljati znotraj Node.js, kot so express, podčrtaj, MongoDB itd.
- Upravitelj paketov vozlišč (npm) se uporablja za prenos in namestitev modulov, ki jih lahko nato uporabite v aplikaciji Node.js.
- Ustvarite lahko NPM module po meri, jih razširite in jih tudi objavite.
- Upravitelj paketov Node ima celoten nabor ukazov za upravljanje modulov npm v lokalnem sistemu, kot so namestitev, odstranitev namestitve, iskanje itd.
- Datoteka package.json se uporablja za hrambo celotnih informacij o metapodatkih za modul npm.