Node.js NPM-i õpetus: moodulite loomine, laiendamine ja avaldamine

Node.js moodulid

Node.js-i moodul on koodi loogiline kapseldamine ühte ühikusse. Alati on hea programmeerimise tava eraldada kood alati nii, et see oleks tulevikus paremini hallatav ja hooldatav. Siin hakkavad tööle Node.js-i moodulid.

Kuna iga moodul on iseseisev üksus, millel on oma kapseldatud funktsionaalsus, saab seda hallata eraldi tööüksusena.

Mis on Node.js-i moodul?

Nagu varem öeldud, on Node js-i moodulid viis koodi kapseldamiseks eraldi loogilisse üksusesse. Turul on saadaval palju valmismooduleid, mida saab kasutada Node js-is.

Allpool on mõned populaarsed moodulid, mida Node js-i rakenduses kasutatakse

  1. Ekspressraamistik – Express on minimaalne ja paindlik Node js-i veebirakenduste raamistik, mis pakub veebi ja veebi jaoks tugevat funktsioonide komplekti liikuv rakendusi.
  2. socket.io – Socket.IO võimaldab reaalajas kahesuunalist sündmustepõhist suhtlust. See moodul sobib hästi vestluspõhiste rakenduste loomiseks.
  3. Jade - Jade on suure jõudlusega mallimootor ja seda rakendatakse koos JavaScript sõlmede ja brauserite jaoks.
  4. MongoDB - MongoDB Node.js draiver on ametlikult toetatud node.js draiver MongoDB.
  5. Restifitseerida – restify on kerge raamistik, mis sarnaneb Expressiga REST API-de loomiseks
  6. Bluebird - Bluebird on täisfunktsionaalne lubadusteek, mis keskendub uuenduslikele funktsioonidele ja jõudlusele

Moodulite kasutamine failis Node.js

Moodulite kasutamiseks a Node.js rakendus, tuleb need esmalt installida Node'i paketihalduri abil.

Allolev käsurida näitab, kuidas saab installida mooduli “express”.

npm install express

Moodulite kasutamine failis Node.js

  • Ülaltoodud käsk laadib alla vajalikud failid, mis sisaldavad "kiirmooduleid" ja hoolitseb ka installimise eest
  • Kui moodul on installitud, peate mooduli kasutamiseks Node.js-i rakenduses kasutama märksõna „nõua”. See märksõna on viis, mida Node.js kasutab mooduli funktsioonide lisamiseks rakendusse.

Vaatame näidet selle kohta, kuidas kasutada märksõna „nõua”. Allolev "Guru99" koodinäide näitab, kuidas kasutada nõutavat funktsiooni

Moodulite kasutamine failis Node.js

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
});
var server=app.listen(3000,function()
{
});
  1. Esimeses avalduses kasutame kiirmooduli kaasamiseks märksõna „nõua”. "Express" moodul on optimeeritud JavaScript teek Node.js arendamiseks. See on üks kõige sagedamini kasutatavaid Node.js mooduleid.
  2. Pärast mooduli kaasamist tuleb mooduli funktsioonide kasutamiseks luua objekt. Siin luuakse ekspressmooduli objekt.
  3. Kui moodul on kaasatud käsuga "require" ja "objekt" on loodud, saab käivitada kiirmooduli nõutavad meetodid. Siin kasutame vaatemootori seadistamiseks käsku set, mida kasutatakse Node.js-s kasutatava mallimootori seadistamiseks.
  4. Märkus: -(Lihtsalt lugeja mõistmiseks; mallimootor on meetod väärtuste sisestamiseks rakendusse, kogudes andmeid andmefailidest. See kontseptsioon on Angular JS-is üsna kuulus, kus lokkis sulgusid {{klahv }} kasutatakse väärtuste asendamiseks Veebileht sõna "võti" lokkis sulgudes tähistab põhimõtteliselt muutujat, mis lehe kuvamisel asendatakse väärtusega.)

  5. Siin kasutame kuulamismeetodit, et panna rakendus kuulama kindlat pordinumbrit.

Kuidas luua NPM-mooduleid

Node.js-il on võimalus luua kohandatud mooduleid ja see võimaldab teil need kohandatud moodulid oma Node.js-i rakendusse kaasata.

Vaatame lihtsat näidet selle kohta, kuidas saame luua oma mooduli ja lisada selle mooduli meie põhirakenduse faili. Meie moodul teeb lihtsalt kahe numbri lisamise lihtsa ülesande.

Järgime alltoodud samme, et näha, kuidas saame mooduleid luua ja oma rakendusse lisada.

Järgmine on samm-sammult NPM-moodulite loomise protsess

Step 1) Looge fail ja kleepige allolev kood
Looge fail nimega Addition.js ja lisage allolev kood. See fail sisaldab teie mooduli loogikat.

Allpool on kood, mis sellesse faili läheb;

NPM-moodulite loomine

var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};
  1. Märksõna „eksport” kasutatakse tagamaks, et selles failis määratletud funktsioonidele on tegelikult juurdepääs muudele failidele.
  2. Seejärel määratleme funktsiooni nimega 'AddNumber'. See funktsioon on defineeritud võtma 2 parameetrit, a ja b. Funktsioon lisatakse moodulisse “eksport”, et muuta funktsioon avalikuks funktsiooniks, millele pääsevad juurde ka teised rakendusmoodulid.
  3. Lõpuks paneme oma funktsiooni tagastama parameetrite lisaväärtust.

Nüüd, kui oleme loonud oma kohandatud mooduli, millel on 2 numbri lisamise funktsioon. Nüüd on aeg luua rakendus, mis kutsub selle mooduli välja.

Järgmises etapis näeme tegelikult, kuidas luua rakendus, mis kutsub meie kohandatud moodulit.

Step 2) Looge rakendusfail
Looge fail nimega "app.js", mis on teie peamine rakenduse fail, ja lisage allolev kood

NPM-moodulite loomine

var Addition=require('./Addition.js');
console.log(Addition.AddNumber(1,2));
  1. Funktsiooni lisamiseks faili Addition.js kasutame märksõna „nõua”.
  2. Kuna faili Addition.js funktsioonidele on nüüd juurdepääs, saame nüüd helistada funktsioonile AddNumber. Funktsioonis anname parameetritena edasi 2 numbrit. Seejärel kuvame väärtuse konsoolis.

NPM-moodulite loomine

Väljund:

  • Kui käivitate faili app.js, kuvatakse konsooli logis väärtus 3.
  • Tulemuseks on see, et faili Addition.js funktsiooni AddNumber kutsumine õnnestus ja konsoolis kuvati tagastatud väärtus 3.

Märge: – Me ei kasuta mooduli Addition.js installimiseks veel sõlmede paketihaldurit. Seda seetõttu, et moodul on juba osa meie projektist kohalikus masinas. Node paketihaldur tuleb pildile, kui avaldate Internetis mooduli, mida näeme järgmises teemas.

Moodulite laiendamine Node.js-s

Moodulite loomisel on võimalik ka üht moodulit teiselt laiendada või pärida.

Tänapäeva programmeerimises on üsna tavaline, et luuakse tavaliste moodulite raamatukogu ja seejärel laiendatakse nende tavaliste moodulite funktsionaalsust vajaduse korral.

Vaatame näidet selle kohta, kuidas saame Node.js-is mooduleid laiendada.

Step 1) Looge baasmoodul.

Meie näites looge fail nimega "Tutorial.js" ja sisestage allolev kood.

Selles koodis loome lihtsalt funktsiooni, mis tagastab konsooli stringi. Tagastatud string on “Guru99 Tutorial”.

Moodulite laiendamine rakenduses Node.js

var exports=module.exports={};
exports.tutorial=function()
{
console.log("Guru99 Tutorial")
}
  1. Ekspordimoodulit kasutatakse selleks, et mis tahes selles failis määratletud funktsioon oleks saadaval ka teistes Node.js moodulites
  2. Loome funktsiooni nimega tutorial, mida saab kasutada teistes Node.js moodulites.
  3. Selle funktsiooni kutsumisel kuvame konsoolis stringi "Guru99 Tutorial".

Nüüd, kui oleme loonud oma baasmooduli nimega Tutorial.js. Nüüd on aeg luua teine ​​moodul, mis laiendab seda baasmoodulit.

Kuidas seda teha, uurime järgmises etapis.

Step 2) Järgmisena loome oma laiendatud mooduli. Looge uus fail nimega "NodeTutorial.js" ja sisestage faili allolev kood.

Moodulite laiendamine rakenduses Node.js

var Tutor=require('./Tutorial.js');
exports.NodeTutorial=function()
{
console.log("Node Tutorial")
function pTutor()
{
var PTutor=Tutor
PTutor.tutorial();
}
}

Or
var Tutor=require('./Tutorial.js');
exports.NodeTutorial=function()
{
console.log("Node Tutorial")
this.pTutor = function ()
{
var PTutor=Tutor
PTutor.tutorial();
}
}

Pange tähele, järgmised põhipunktid ülaltoodud koodi kohta

  1. Me kasutame uues mooduli failis funktsiooni "nõua". Kuna kavatseme olemasolevat moodulifaili "Tutorial.js" laiendada, peame selle enne laiendamist lisama.
  2. Seejärel loome funktsiooni nimega "Nodetutorial". See funktsioon teeb 2 asja,
  • See saadab konsooli stringi "Node Tutorial".
  • See saadab stringi "Guru99 Tutorial" baasmoodulist "Tutorial.js" meie laiendatud moodulisse "NodeTutorial.js".
  1. Siin teeme esimese sammu stringi saatmiseks konsooli "Node Tutorial".
  2. Järgmine samm on funktsiooni kutsumine meie moodulist Tutorial, mis väljastab stringi "Guru99 Tutorial" faili console.log.

Step 3) Looge oma peamine fail app.js, mis on teie peamine rakenduse fail, ja lisage allolev kood.

Moodulite laiendamine rakenduses Node.js

var localTutor=require('./NodeTutorial.js');
localTutor.NodeTutorial();
localTutor.NodeTutorial.pTutor();

Or use this code
var tut = new localTutor.NodeTutorial();  // Create and save object
tut.pTutor();  // Call function on object

Ülaltoodud kood teeb järgmisi asju;

  1. Meie põhirakenduse faili nimi on nüüd "NodeTutorial" moodul.
  2. Me kutsume funktsiooni "NodeTutorial". Selle funktsiooni kutsumisel kuvatakse konsooli logis tekst "Node Tutorial".
  3. Kuna oleme laiendanud oma Tutorial.js moodulit ja avaldanud funktsiooni nimega pTutor. Samuti kutsub see välja moodulis Tutorial.js oleva õpetuse mooduli ja konsoolile kuvatakse ka tekst "Guru99 Tutorial".

Väljund:

Kuna oleme ülaltoodud koodi app.js käivitanud Node'i abil, saame failis console.log järgmise väljundi

  • Sõlme õpetus
  • Guru99 õpetus

NPM (Node Package Manager) Avalda pakett

Üks saab avaldada oma mooduli oma Github hoidla.

Avaldades oma mooduli kesksesse asukohta, ei pea te end installima igasse seda vajavasse masinasse.

Selle asemel saate kasutada npm installikäsku ja installida avaldatud npm-mooduli.

Npm-mooduli avaldamiseks tuleb järgida järgmisi samme

Step 1) Looge oma hoidla GitHubis (onlain-koodihoidla haldustööriist). Seda saab kasutada teie koodihoidlate majutamiseks.

Samm 2) Peate oma kohalikule npm-installatsioonile teatama, kes te olete. Mis tähendab, et peame npm-ile ütlema, kes on selle mooduli autor, mis on meili ID ja mis tahes saadaoleva ettevõtte URL, mis tuleb selle ID-ga seostada. Kõik need üksikasjad lisatakse teie npm-moodulisse selle avaldamisel.

Allolevad käsud määravad npm-mooduli autori nime, e-posti aadressi ja URL-i.

npm määras init-autori nime "Guru99".

npm määra init-author-email “guru99@gmail.com”

npm määras init-author-url “http://Guru99.com”

Step 3) Järgmine samm on sisse logida npm-i, kasutades viimases etapis antud mandaate. Sisselogimiseks peate kasutama allolevat käsku

npm login

Step 4) Paketi lähtestamine – järgmine samm on paketi lähtestamine, et luua fail package.json. Seda saab teha alloleva käsu väljastamisega

npm init

Ülaltoodud käsu väljastamisel palutakse teil esitada mõned küsimused. Kõige olulisem on teie mooduli versiooninumber.

Step 5) Avalda GitHubis – järgmine samm on lähtefailide avaldamine GitHubis. Seda saab teha allolevate käskude käivitamisega.

git add.
git commit -m "Initial release"
git tag v0.0.1 
git push origin master --tags

Step 6) Mooduli avaldamine – viimane osa on mooduli avaldamine npm-registris. Seda tehakse alloleva käsu kaudu.

npm publish

Kolmanda osapoole pakettide haldamine npm-iga

Nagu nägime, on "Node paketihalduril" võimalus hallata mooduleid, mida Node.js rakendused nõuavad.

Vaatame mõningaid sõlmede paketihalduris saadaolevaid funktsioone moodulite haldamiseks

  1. Pakettide installimine globaalses režiimis – mooduleid saab installida globaalsel tasemel, mis lihtsalt tähendab, et need moodulid oleksid kohalikus masinas kõigi Node.js projektide jaoks saadaval. Allolev näide näitab, kuidas installida kiirmoodulit globaalse valikuga.npm install express –global Ülaltoodud avalduse globaalne valik võimaldab mooduleid globaalsel tasemel installida.
  2. Loetlege kõik kohalikku masinasse installitud globaalsed paketid. Seda saab teha käsurealt alloleva käsu täitmiseganpm loend – ülemaailmneAllpool on väljund, mida kuvatakse juhul, kui olete eelnevalt oma süsteemi installinud kiirmooduli. Siin näete erinevaid kohalikku masinasse installitud mooduleid.

Kolmanda osapoole pakettide haldamine NPM-iga

  1. Paketi konkreetse versiooni installimine – mõnikord võib olla nõue installida ainult paketi konkreetne versioon. Kui teate paketi nime ja asjakohast versiooni, mis tuleb installida, saate selle konkreetse versiooni installimiseks kasutada käsku npm install. Allolevas näites on näidatud, kuidas installida moodul nimega alakriips konkreetse versiooniga 1.7.0npm install. alakriips@1.7.0
  2. Paketi versiooni värskendamine – mõnikord võib teil olla süsteemis paketi vanem versioon ja te võite soovida värskendada uusimale turul saadaolevale versioonile. Selleks saab kasutada käsku npm update. Allolev näide näitab, kuidas värskendada allkriipsupaketti uusimale versioonilenpm värskenduse allakriips
  3. Konkreetse paketi otsimine – et otsida, kas konkreetne versioon on kohalikus süsteemis saadaval või mitte, võite kasutada otsingukäsku npm. Allolev näide kontrollib, kas kiirmoodul on kohalikku masinasse installitud või mitte.npm kiirotsing
  4. Paketi desinstallimine – sama, millesse saate installida paketi, saate ka paketi desinstallida. Paketi desinstallimine toimub desinstallimiskäsuga npm. Allolev näide näitab, kuidas ekspressmoodulit desinstallidanpm uninstall express

Mis on fail package.json?

Faili „package.json” kasutatakse faili hoidmiseks konkreetse projekti metaandmed. See teave annab Node'i paketihaldurile vajaliku teabe, et mõista, kuidas projekti ja selle sõltuvusi tuleks käsitleda.

Failid package.json sisaldavad sellist teavet nagu projekti kirjeldus, projekti versioon konkreetses distributsioonis, litsentsiteave ja konfiguratsiooniandmed.

Fail package.json asub tavaliselt projekti Node.js juurkataloogis.

Toome näite, kuidas näeb välja mooduli struktuur, kui see on installitud npm kaudu.

Allolev hetktõmmis näitab ekspressmooduli faili sisu, kui see on teie Node.js projekti kaasatud. Pildilt näete kiirkaustas faili package.json.

Fail Package.json

Kui avate faili package.json, näete failis palju teavet.

Allpool on pildi osa failist. The express@~4.13.1 mainib kasutatava kiirmooduli versiooninumbrit.

Fail Package.json

kokkuvõte

  • Node.js-i moodul on koodi loogiline kapseldamine ühte ühikusse. Mooduliteks eraldamine muudab koodi tulevaste eesmärkide jaoks paremini hallatavaks ja hooldatavamaks
  • Turul on saadaval palju mooduleid, mida saab Node.js-is kasutada, näiteks ekspress-, alakriips-, MongoDBJne
  • Sõlmepaketihaldurit (npm) kasutatakse moodulite allalaadimiseks ja installimiseks, mida saab seejärel kasutada rakenduses Node.js.
  • Saate luua kohandatud NPM-mooduleid, neid mooduleid laiendada ja ka neid mooduleid avaldada.
  • Node paketihalduril on täielik komplekt käske kohaliku süsteemi npm-moodulite haldamiseks, nagu installimine, eemaldamine, otsimine jne.
  • Faili package.json kasutatakse npm-mooduli kogu metaandmete teabe hoidmiseks.