Node.js NPM-i õpetus: loomine, avaldamine, laiendamine & Halda

Lang L: none (table-of-contents):

Anonim

Node.js moodul on koodi loogiline kapseldamine ühte üksusesse. Alati on hea programmeerimistava, kui eraldate koodi alati nii, et see oleks tulevikus paremini hallatav ja hooldatav. Seal toimivad Node.js-i moodulid.

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

Selles õpetuses saate teada

  • Mis on Node.js moodulid
  • Moodulite kasutamine Node.js-is
  • NPM-moodulite loomine
  • Moodulite pikendamine
  • NPM-moodulite avaldamine
  • Kolmandate osapoolte pakettide haldamine npm-ga
  • Mis on fail pack.json

Mis on Node.js moodulid?

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

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

  1. Expressi raamistik - Express on minimaalne ja paindlik Node js veebirakenduste raamistik, mis pakub veebi- ja mobiilirakendustele tugevat funktsioonide kogumit.
  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, mis on rakendatud JavaScripti abil sõlmede ja brauserite jaoks.
  4. MongoDB - MongoDB Node.js draiver on MongoDB ametlikult toetatud node.js draiver.
  5. Restify - restify on kerge raamistik, mis sarnaneb REST API-de loomise ekspressiga
  6. Sinilind - Bluebird on täisfunktsionaalne lubadusteek, mis keskendub uuenduslikele funktsioonidele ja jõudlusele

Moodulite kasutamine Node.js-is

Moodulite kasutamiseks Node.js rakenduses tuleb need kõigepealt installida Node'i paketihalduri abil.

Allpool olev käsurida näitab, kuidas saab moodulit "express" installida.

npm install express

  • Ülaltoodud käsk laadib alla vajalikud failid, mis sisaldavad ekspressmooduleid, ja hoolitseb ka installimise eest
  • Kui moodul on installitud, peate moodulis kasutamiseks Node.js rakenduses kasutama märksõna 'nõuda'. See märksõna on viis, mida Node.js kasutab mooduli funktsionaalsuse kaasamiseks rakendusse.

Vaatame näidet, kuidas saaksime kasutada märksõna "nõuda". Allpool toodud "Guru99" koodi näide näitab, kuidas funktsiooni nõuda kasutatakse

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 ekspressmooduli lisamiseks märksõna "nõuda". "Express" moodul on optimeeritud JavaScripti teek Node.js arendamiseks. See on üks kõige sagedamini kasutatavaid Node.js mooduleid.
  2. Pärast mooduli kaasamist tuleb moodulis oleva funktsionaalsuse kasutamiseks luua objekt. Siin luuakse ekspressmooduli objekt.
  3. Kui moodul on kaasatud käsuga "nõuda" ja loodud on "objekt", saab kasutada ekspressmooduli nõutavaid meetodeid. Siin kasutame vaate mootori seadistamiseks käsku set, mida kasutatakse Node.js-is kasutatava mallimootori määramiseks.

    Märkus: - (Lihtsalt lugeja mõistmiseks; mallimootor on lähenemine väärtuste sisestamiseks rakendusse, kogudes andmeid andmefailidest. See kontseptsioon on üsna kuulus nurk JS-is, kus kasutatakse lokkisulgusid {{key}} asendab veebilehe väärtusi. Lokkisulgudes olev sõna "võti" tähistab põhimõtteliselt muutujat, mis lehe kuvamisel asendatakse väärtusega.)

  4. Siin kasutame kuulamismeetodit, et panna rakendus kuulama konkreetset pordinumbrit.

NPM-moodulite loomine

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

Vaatame lihtsat näidet selle kohta, kuidas saame luua oma mooduli ja kaasata selle mooduli oma peamisse rakendusfaili. Meie moodul teeb lihtsalt kahe numbri lisamise lihtsa ülesande.

Järgime allolevaid samme, et näha, kuidas saame mooduleid luua ja neid oma rakendusse kaasata.

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

Allpool on kood, mis sellesse faili läheks;

var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
  1. Märksõna "eksport" kasutatakse selle tagamiseks, et selles failis määratletud funktsionaalsusele saaksid teised failid tegelikult juurde pääseda.
  2. Seejärel määratleme funktsiooni nimega 'AddNumber'. See funktsioon on määratletud kahe parameetri, a ja b võtmiseks. Funktsioon lisatakse moodulile "eksport", et muuta funktsioon avalikuks funktsiooniks, millele pääsevad juurde teised rakendusemoodulid.
  3. Lõpuks paneme oma funktsiooni tagastama parameetrite lisandväärtuse.

Nüüd, kui oleme loonud oma kohandatud mooduli, millel on 2 numbri lisamise funktsioon. Nüüd on aeg luua rakendus, mis kutsub seda moodulit.

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

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

var Addition=require('./Addition.js');console.log(Addition.AddNumber(1,2));
  1. Funktsioonide lisamiseks faili Addition.js kasutame märksõna "nõuda".
  2. Kuna failis Addition.js olevatele funktsioonidele on nüüd juurdepääs, saame nüüd funktsiooni AddNumber helistada. Funktsioonis edastame parameetritena 2 numbrit. Seejärel kuvame väärtust konsoolis.

Väljund :

  • Faili app.js käivitamisel kuvatakse konsoolilogis väljund väärtusega 3.
  • Tulemuseks on see, et Addition.js-faili funktsiooni AddNumber kutsuti edukalt ja tagastatud väärtus 3 kuvati konsoolis.

Märkus: - Me ei kasuta Addition.js mooduli installimiseks veel "sõlmpaketi haldurit". Seda seetõttu, et moodul on juba osa meie projektist kohalikus masinas. Node'i paketihaldur ilmub pildile, kui avaldate Internetis mooduli, mida näeme järgnevas teemas.

Moodulite pikendamine

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

Tänapäevases programmeerimises on üsna tavaline ehitada tavaliste moodulite kogu ja seejärel vajadusel laiendada nende ühiste moodulite funktsionaalsust.

Vaatame näidet, kuidas saaksime mooduleid laiendada Node.js-is.

Samm 1) Looge baasmoodul.

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

Selles koodis loome just funktsiooni, mis tagastab konsoolile stringi. Tagastatav string on "Guru99 juhendaja".

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

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

Kuidas seda teha, uurime järgmises etapis.

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

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();}}

Pange tähele, et ülaltoodud koodi kohta on järgmised võtmepunktid

  1. Kasutame funktsiooni "nõuda" uues moodulifailis endas. Kuna kavatseme laiendada olemasolevat moodulifaili "Tutorial.js", peame selle enne laiendamist kõigepealt kaasama.
  2. Seejärel loome funktsiooni nimega "Nodetutorial". See funktsioon teeb kahte asja,
  • See saadab konsoolile stringi "Node Tutorial".
  • See saadab stringi "Guru99 õpetus" baasmoodulilt "Tutorial.js" meie laiendatud moodulile "NodeTutorial.js".
  1. Siinkohal teeme esimese sammu stringi saatmiseks konsoolile "Node Tutorial".
  2. Järgmine samm on funktsiooni kutsumine meie juhendaja moodulist, mis väljastab stringi "Guru99 õpetus" konsoolile.log.

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

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

Ülaltoodud kood teeb järgmisi asju;

  1. Meie peamine rakendusfail kutsub nüüd moodulit "NodeTutorial".
  2. Kutsume funktsiooni "NodeTutorial". Sellele funktsioonile helistades kuvatakse konsoolilogis tekst "Node Tutorial".
  3. Kuna oleme laiendanud oma Tutorial.js moodulit ja paljastanud funktsiooni nimega pTutor. Samuti kutsub see mooduli Tutorial.js juhendmoodulit ja teksti "Guru99 õpetus" kuvatakse ka konsoolile.

Väljund:

Kuna oleme ülaltoodud rakenduse app.js koodi käivitanud sõlme abil, saame järgmise väljundi faili console.log

  • Sõlme õpetus
  • Guru99 õpetus

NPM-i (sõlmpaketi halduri) moodulite avaldamine

Võib avaldada oma mooduli oma Githubi hoidlas.

Avaldades oma mooduli kesksesse asukohta, ei ole teil siis koormust, et peate ennast installima igasse seda vajavasse masinasse.

Selle asemel võite kasutada käsku npm install ja installida avaldatud npm moodul.

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

Samm 1) Looge oma hoidla GitHubis (veebipõhine koodihoidla haldustööriist). Seda saab kasutada oma koodihoidlate majutamiseks.

2. samm. Peate oma kohalikule npm-i installile ütlema, kes te olete. Mis tähendab, et peame npm-ile ütlema, kes on selle mooduli autor, mis on e-posti aadressi ja ettevõtte võimalik URL, mis tuleb selle ID-ga seostada. Kõik need üksikasjad lisatakse teie npm moodulisse, kui see avaldatakse.

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

npm määras init.author.name "Guru99".

npm set init.author.email " See e-posti aadress on spämmirobotite eest kaitstud. Selle vaatamiseks peate lubama JavaScripti."

npm määrake init.author.url http://Guru99.com

Samm 3) Järgmine samm on sisse logida npm-i, kasutades viimases etapis toodud mandaate. Sisselogimiseks peate kasutama järgmist käsku

npm login 

4. samm. Paketi lähtestamine - järgmine samm on paketi lähtestamine faili package.json loomiseks. Seda saab teha järgmise käsu väljastamisega

npm init

Kui väljastate ülaltoodud käsu, küsitakse teilt mõningaid küsimusi. Kõige olulisem on teie mooduli versiooninumber.

Samm 5) Avaldamine GitHubis - järgmine samm on avaldada oma lähtefailid GitHubis. Seda saab teha alltoodud käskude käivitamisega.

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

Samm 6) Mooduli avaldamine - viimane bitt on mooduli avaldamine npm registris. Seda tehakse alloleva käsu kaudu.

npm publish

Kolmandate osapoolte pakettide haldamine npm-ga

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

Vaatame mõningaid sõlmpakettide halduris saadaolevaid funktsioone moodulite haldamiseks

  1. Pakettide installimine globaalses režiimis - mooduleid saab installida ülemaailmsel tasemel, mis lihtsalt tähendab põhimõtteliselt, et need moodulid oleksid kättesaadavad kõigile Node.js projektidele kohalikus masinas. Allpool toodud näide näitab, kuidas installida "ekspressmoodul" globaalse suvandiga.

    npm install express -global

    Ülaltoodud avalduses toodud globaalne valik võimaldab mooduleid globaalsel tasemel installida.

  2. Kõigi kohalikku masinasse installitud globaalsete pakettide loetelu. Seda saab teha, käivitades käsureal alloleva käsu

    npm nimekiri - globaalne

    Allpool on kuvatav väljund, kui olete varem oma süsteemi installinud "ekspressmooduli".

    Siin näete erinevaid kohalikku masinasse installitud mooduleid.

  1. Paketi konkreetse versiooni installimine - mõnikord võib tekkida nõue installida ainult konkreetne paketi versioon. Kui teate paketi nime ja asjakohast versiooni, mis tuleb installida, saate selle konkreetse versiooni installimiseks kasutada käsku npm install.

    Allpool toodud näide näitab, kuidas allajoonimismoodulit installida konkreetse versiooniga 1.7.0

    npm installige [email protected]

  2. Paketiversiooni värskendamine - mõnikord võib teil olla süsteemis vanem versioon paketist ja soovite värskendada turul uuele versioonile. Selleks saab kasutada käsku npm update. Allpool toodud näide näitab, kuidas alljoonepaketti värskendada

    npm värskenduse alakriips

  3. Kindla paketi otsimine - et otsida, kas konkreetne versioon on kohalikus süsteemis saadaval või mitte, võite kasutada käsku npm. Allolevas näites kontrollitakse, kas ekspressmoodul on kohalikku masinasse installitud või mitte.

    npm otsingu ekspress

  4. Paketi desinstallimine - saate desinstallida ka paketi. Paketi desinstallimine toimub desinstallimise käsuga npm. Allpool olev näide näitab, kuidas kiirmoodulit desinstallida

    npm desinstallige ekspress

Mis on fail pack.json

Faili "package.json" kasutatakse konkreetse projekti metaandmete hoidmiseks . See teave annab sõlmepaketi haldurile 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 jaotises, litsentsiteave ja konfiguratsiooniandmed.

Pakett.json asub tavaliselt projekti Node.js juurkataloogis.

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

Allpool olev hetktõmmis näitab ekspressmooduli faili sisu, kui see on kaasatud teie Node.js projekti. Hetkepildilt näete ekspresskaustas faili package.json.

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

Allpool on pildi osa failist. Express@~4.13.1 mainitakse versiooni number express mooduli kasutamist.

Kokkuvõte

  • Node.js moodul on koodi loogiline kapseldamine ühte üksusesse. Mooduliteks eraldamine muudab koodi edaspidistel eesmärkidel paremini hallatavaks ja hooldatavaks
  • Turul on saadaval palju mooduleid, mida saab Node.js-is kasutada, näiteks Express, alakriips, MongoDB jne.
  • Sõlmepaketi haldurit (npm) kasutatakse moodulite allalaadimiseks ja installimiseks, mida saab seejärel kasutada rakenduses Node.js.
  • Võib luua kohandatud NPM-mooduleid, laiendada neid mooduleid ja neid mooduleid ka avaldada.
  • Node paketihalduril on täielik käskude komplekt kohaliku süsteemi npm moodulite haldamiseks, näiteks installimine, installimise tühistamine, otsimine jne.
  • Faili pack.json kasutatakse kogu npm mooduli metaandmete teabe hoidmiseks.