Node.js NPM Tutorial: Hvordan man opretter, udvider, udgiver moduler
Node.js-moduler
Et modul i Node.js er en logisk indkapsling af kode i en enkelt enhed. Det er altid en god programmeringspraksis altid at adskille kode på en sådan måde, at den gør den mere overskuelig og vedligeholdelig til fremtidige formål. Det er her, moduler i Node.js kommer i aktion.
Da hvert modul er en selvstændig enhed med sin egen indkapslede funktionalitet, kan det styres som en separat arbejdsenhed.
Hvad er et modul i Node.js?
Som nævnt tidligere er moduler i Node js en måde at indkapsle kode i en separat logisk enhed. Der er mange færdige moduler tilgængelige på markedet, som kan bruges i Node js.
Nedenfor er nogle af de populære moduler, som bruges i en Node js-applikation
- Express ramme – Express er en minimal og fleksibel Node js-webapplikationsramme, der giver et robust sæt funktioner til nettet og mobil applikationer.
- socket.io – Socket.IO muliggør tovejs begivenhedsbaseret kommunikation i realtid. Dette modul er godt til oprettelse af chatbaserede applikationer.
- jade – Jade er en højtydende skabelonmotor og implementeret med JavaScript til node og browsere.
- MongoDB - Den MongoDB Node.js driver er den officielt understøttede node.js driver til MongoDB.
- Retify – restify er en letvægtsramme, der ligner udtrykket til opbygning af REST API'er
- Bluebird – Bluebird er et fuldt udstyret løftebibliotek med fokus på innovative funktioner og ydeevne
Brug af moduler i Node.js
For at bruge moduler i en node.js applikation, skal de først installeres ved hjælp af Node-pakkehåndteringen.
Nedenstående kommandolinje viser, hvordan et modul "express" kan installeres.
npm install Express
- Ovenstående kommando vil downloade de nødvendige filer, der indeholder "ekspressmodulerne", og også tage sig af installationen
- Når modulet er installeret, skal du bruge nøgleordet 'require' for at bruge et modul i en Node.js-applikation. Dette nøgleord er en måde, som Node.js bruger til at inkorporere funktionaliteten af et modul i en applikation.
Lad os se på et eksempel på, hvordan vi kan bruge søgeordet "kræver". Nedenstående "Guru99" kodeeksempel viser, hvordan man bruger kræve funktionen
var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
});
var server=app.listen(3000,function()
{
});
- I selve den første erklæring bruger vi nøgleordet "kræver" til at inkludere ekspresmodulet. "Express"-modulet er et optimeret JavaScript bibliotek til udvikling af Node.js. Dette er et af de mest brugte Node.js-moduler.
- Når modulet er inkluderet, skal der oprettes et objekt for at kunne bruge funktionaliteten i modulet. Her oprettes et objekt af ekspresmodulet.
- Når modulet er inkluderet ved hjælp af "require"-kommandoen, og et "objekt" er oprettet, kan de påkrævede metoder for ekspresmodulet påkaldes. Her bruger vi set-kommandoen til at indstille view-motoren, som bruges til at indstille den skabelonmotor, der bruges i Node.js.
- Her bruger vi lyt til-metoden til at få applikationen til at lytte på et bestemt portnummer.
Bemærk: -(Bare for læserens forståelse; en skabelonmotor er en tilgang til indsprøjtning af værdier i en applikation ved at opsamle data fra datafiler. Dette koncept er ret berømt i Angular JS, hvor de krøllede klammeparenteser {{ key }} bruges til at erstatte værdier i websiden Ordet 'nøgle' i de krøllede klammeparenteser angiver grundlæggende den variabel, som vil blive erstattet af en værdi, når siden vises.)
Sådan opretter du NPM-moduler
Node.js har mulighed for at oprette brugerdefinerede moduler og giver dig mulighed for at inkludere disse brugerdefinerede moduler i din Node.js-applikation.
Lad os se på et simpelt eksempel på, hvordan vi kan oprette vores eget modul og inkludere det modul i vores hovedapplikationsfil. Vores modul vil blot gøre en simpel opgave med at tilføje to tal.
Lad os følge nedenstående trin for at se, hvordan vi kan oprette moduler og inkludere dem i vores ansøgning.
Følgende er trin for trin proces om, hvordan man opretter NPM-moduler
Trin 1) Opret en fil og indsæt nedenstående kode
Opret en fil kaldet "Addition.js", og inkluder nedenstående kode. Denne fil vil indeholde logikken for dit modul.
Nedenfor er koden, som ville gå ind i denne fil;
var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};
- Nøgleordet "eksport" bruges til at sikre, at den funktionalitet, der er defineret i denne fil, faktisk kan tilgås af andre filer.
- Vi er så ved at definere en funktion kaldet 'AddNumber'. Denne funktion er defineret til at tage 2 parametre, a og b. Funktionen tilføjes til modulet "eksporter" for at gøre funktionen til en offentlig funktion, der kan tilgås af andre applikationsmoduler.
- Vi får endelig vores funktion til at returnere parametrenes merværdi.
Nu hvor vi har lavet vores brugerdefinerede modul, som har funktionaliteten til at tilføje 2 numre. Det er nu tid til at oprette en applikation, som kalder dette modul.
I det næste trin vil vi faktisk se, hvordan man opretter applikationen, som kalder vores brugerdefinerede modul.
Trin 2) Opret en applikationsfil
Opret en fil kaldet "app.js", som er din primære programfil, og tilføj nedenstående kode
var Addition=require('./Addition.js');
console.log(Addition.AddNumber(1,2));
- Vi bruger nøgleordet "require" for at inkludere funktionaliteten i filen Addition.js.
- Da funktionerne i filen Addition.js nu er tilgængelige, kan vi nu foretage et opkald til AddNumber-funktionen. I funktionen sender vi 2 tal som parametre. Vi viser derefter værdien i konsollen.
Produktion:
- Når du kører app.js-filen, får du et output med værdi 3 i konsolloggen.
- Resultatet er, at AddNumber-funktionen i filen Addition.js blev kaldt med succes, og den returnerede værdi på 3 blev vist i konsollen.
Bemærk: – Vi bruger endnu ikke "Node Package Manager" til at installere vores Addition.js-modul. Dette skyldes, at modulet allerede er en del af vores projekt på den lokale maskine. Node-pakkehåndteringen kommer ind i billedet, når du udgiver et modul på internettet, som vi ser i det efterfølgende emne.
Udvidelse af moduler i Node.js
Ved oprettelse af moduler er det også muligt at forlænge eller arve et modul fra et andet.
I moderne programmering er det ret almindeligt at bygge et bibliotek af fælles moduler og derefter udvide funktionaliteten af disse fælles moduler, hvis det kræves.
Lad os se på et eksempel på, hvordan vi kan udvide moduler i Node.js.
Trin 1) Opret basismodulet.
I vores eksempel skal du oprette en fil kaldet "Tutorial.js" og placere nedenstående kode.
I denne kode opretter vi bare en funktion, som returnerer en streng til konsollen. Den returnerede streng er "Guru99 Tutorial".
var exports=module.exports={};
exports.tutorial=function()
{
console.log("Guru99 Tutorial")
}
- Eksportmodulet bruges, så den funktion, der er defineret i denne fil, kan være tilgængelig i andre moduler i Node.js
- Vi laver en funktion kaldet tutorial, som kan bruges i andre Node.js-moduler.
- Vi viser en streng "Guru99 Tutorial" i konsollen, når denne funktion kaldes.
Nu hvor vi har lavet vores basismodul kaldet Tutorial.js. Det er nu tid til at oprette endnu et modul, som vil udvide dette basismodul.
Vi vil undersøge, hvordan du gør dette i næste trin.
Trin 2) Dernæst vil vi oprette vores udvidede modul. Opret en ny fil kaldet "NodeTutorial.js" og placer nedenstående kode i filen.
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();
}
}
Bemærk følgende nøglepunkter om ovenstående kode
- Vi bruger funktionen "kræver" i selve den nye modulfil. Da vi skal udvide den eksisterende modulfil "Tutorial.js", skal vi først inkludere den, før vi udvider den.
- Vi opretter derefter en funktion kaldet "Nodetutorial." Denne funktion vil gøre 2 ting,
- Det vil sende en streng "Node Tutorial" til konsollen.
- Det vil sende strengen "Guru99 Tutorial" fra basismodulet "Tutorial.js" til vores udvidede modul "NodeTutorial.js".
- Her udfører vi det første trin for at sende en streng til "Node Tutorial" til konsollen.
- Det næste trin er at kalde funktionen fra vores Tutorial-modul, som udsender strengen "Guru99 Tutorial" til console.log.
Trin 3) Opret din hovedapp.js-fil, som er din hovedapplikationsfil, og inkluder nedenstående kode.
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
Ovenstående kode gør følgende ting;
- Vores hovedapplikationsfil kalder nu modulet "NodeTutorial".
- Vi kalder funktionen "NodeTutorial". Ved at kalde denne funktion vil teksten "Node Tutorial" blive vist i konsolloggen.
- Siden vi har udvidet vores Tutorial.js-modul og afsløret en funktion kaldet pTutor. Det kalder også selvstudiemodulet i Tutorial.js-modulet, og teksten "Guru99 Tutorial" vil også blive vist på konsollen.
Output:
Da vi har udført ovenstående app.js-kode ved hjælp af Node, får vi følgende output i filen console.log
- Node tutorial
- Guru99 Tutorial
NPM (Node Package Manager) Udgiv pakke
Man kan udgive deres eget modul til deres eget Github repository.
Ved at udgive dit modul til en central placering, er du ikke belastet med at skulle installere dig selv på hver maskine, der kræver det.
I stedet kan du bruge installeringskommandoen til npm og installere dit offentliggjorte npm-modul.
Følgende trin skal følges for at udgive dit npm-modul
Trin 1) Opret dit depot på GitHub (et online værktøj til administration af kodelager). Det kan bruges til at hoste dine kodelagre.
Trin 2) Du skal fortælle din lokale npm-installation om, hvem du er. Hvilket betyder, at vi er nødt til at fortælle npm, hvem der er forfatteren til dette modul, hvad er e-mail-id'et og enhver virksomheds-URL, som er tilgængelig, og som skal knyttes til dette id. Alle disse detaljer vil blive tilføjet til dit npm-modul, når det udgives.
Nedenstående kommandoer angiver navn, e-mail og URL på forfatteren af npm-modulet.
npm sæt init-forfatternavn "Guru99."
npm sæt init-author-e-mail "guru99@gmail.com"
npm set init-author-url "http://Guru99.com"
Trin 3) Det næste trin er at logge ind på npm ved hjælp af legitimationsoplysningerne i det sidste trin. For at logge ind skal du bruge nedenstående kommando
npm login
Trin 4) Initialiser din pakke – Det næste trin er at initialisere pakken for at oprette filen package.json. Dette kan gøres ved at udstede nedenstående kommando
npm init
Når du udsteder ovenstående kommando, bliver du bedt om nogle spørgsmål. Den vigtigste er versionsnummeret for dit modul.
Trin 5) Udgiv til GitHub - Det næste trin er at udgive dine kildefiler til GitHub. Dette kan gøres ved at køre nedenstående kommandoer.
git add. git commit -m "Initial release" git tag v0.0.1 git push origin master --tags
Trin 6) Udgiv dit modul - Den sidste bit er at publicere dit modul i npm-registret. Dette gøres via nedenstående kommando.
npm publish
Håndtering af tredjepartspakker med npm
Som vi har set, har "Node Package Manager" mulighed for at administrere moduler, som kræves af Node.js-applikationer.
Lad os se på nogle af de funktioner, der er tilgængelige i node-pakkehåndteringen til administration af moduler
- Installation af pakker i global tilstand – Moduler kan installeres på globalt niveau, hvilket bare grundlæggende betyder, at disse moduler ville være tilgængelige for alle Node.js-projekter på en lokal maskine. Eksemplet nedenfor viser, hvordan du installerer "ekspressmodulet" med den globale mulighed.npm installer express –global Den globale mulighed i ovenstående erklæring er, hvad der tillader modulerne at blive installeret på globalt niveau.
- Visning af alle de globale pakker installeret på en lokal maskine. Dette kan gøres ved at udføre nedenstående kommando i kommandopromptennpm liste – globalNedenfor er det output, som vil blive vist, hvis du tidligere har installeret "ekspressmodulet" på dit system. Her kan du se de forskellige moduler installeret på den lokale maskine.
- Installation af en specifik version af en pakke – Nogle gange kan der være et krav om kun at installere den specifikke version af en pakke. Når du kender pakkenavnet og den relevante version, der skal installeres, kan du bruge kommandoen npm install til at installere den specifikke version. Eksemplet nedenfor viser, hvordan du installerer modulet kaldet underscore med en specifik version af 1.7.0npm install understregning@1.7.0
- Opdatering af en pakkeversion – Nogle gange har du måske en ældre version af en pakke i et system, og du vil måske opdatere til den nyeste på markedet. For at gøre dette kan man bruge kommandoen npm update. Eksemplet nedenfor viser, hvordan du opdaterer understregningspakken til den nyeste versionnpm opdatering understregning
- Søgning efter en bestemt pakke – For at søge, om en bestemt version er tilgængelig på det lokale system eller ej, kan du bruge søgekommandoen til npm. Eksemplet nedenfor vil kontrollere, om ekspresmodulet er installeret på den lokale maskine eller ej.npm søgeekspress
- Afinstallation af en pakke – På samme måde som du kan installere en pakke, kan du også afinstallere en pakke. Afinstallationen af en pakke udføres med afinstallationskommandoen til npm. Eksemplet nedenfor viser, hvordan du afinstallerer ekspresmoduletnpm afinstaller express
Hvad er filen package.json
Filen "package.json" bruges til at holde metadata om et bestemt projekt. Disse oplysninger giver Node-pakkemanageren den nødvendige information til at forstå, hvordan projektet skal håndteres sammen med dets afhængigheder.
Package.json-filerne indeholder information såsom projektbeskrivelsen, versionen af projektet i en bestemt distribution, licensoplysninger og konfigurationsdata.
Package.json-filen er normalt placeret i rodmappen til et Node.js-projekt.
Lad os tage et eksempel på, hvordan strukturen af et modul ser ud, når det er installeret via npm.
Nedenstående snapshot viser filindholdet af ekspresmodulet, når det er inkluderet i dit Node.js-projekt. Fra øjebliksbilledet kan du se filen package.json i express-mappen.
Hvis du åbner filen package.json, vil du se en masse information i filen.
Nedenfor er et øjebliksbillede af en del af filen. Det express@~4.13.1 nævner versionsnummeret på det ekspresmodul, der anvendes.
Resumé
- Et modul i Node.js er en logisk indkapsling af kode i en enkelt enhed. Adskillelse i moduler gør kode mere overskuelig og vedligeholdelig til fremtidige formål
- Der er mange moduler tilgængelige på markedet, som kan bruges inden for Node.js såsom express, underscore, MongoDBOsv
- Node-pakkehåndteringen (npm) bruges til at downloade og installere moduler, som derefter kan bruges i en Node.js-applikation.
- Man kan oprette brugerdefinerede NPM-moduler, udvide disse moduler og også udgive disse moduler.
- Node-pakkehåndteringen har et komplet sæt kommandoer til at administrere npm-modulerne på det lokale system, såsom installation, afinstallation, søgning osv.
- Package.json-filen bruges til at opbevare alle metadataoplysningerne for et npm-modul.











