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.











