Node.js NPM Handledning: Hur man skapar, utökar, publicerar moduler

Node.js-moduler

En modul i Node.js är en logisk inkapsling av kod i en enda enhet. Det är alltid en bra programmeringspraxis att alltid separera kod på ett sådant sätt som gör den mer hanterbar och underhållbar för framtida ändamål. Det är där moduler i Node.js kommer till handling.

Eftersom varje modul är en oberoende enhet med sin egen inkapslade funktionalitet kan den hanteras som en separat arbetsenhet.

Vad är en modul i Node.js?

Som nämnts tidigare är moduler i Node js ett sätt att kapsla in kod i en separat logisk enhet. Det finns många färdiga moduler tillgängliga på marknaden som kan användas inom Node js.

Nedan är några av de populära modulerna som används i en Node js-applikation

  1. Express ramverk – Express är ett minimalt och flexibelt Node js webbapplikationsramverk som ger en robust uppsättning funktioner för webben och mobil tillämpningar.
  2. socket.io – Socket.IO möjliggör dubbelriktad händelsebaserad kommunikation i realtid. Den här modulen är bra för att skapa chattbaserade applikationer.
  3. Jade – Jade är en högpresterande mallmotor och implementerad med JavaScript för noder och webbläsare.
  4. MongoDB - Den MongoDB Node.js-drivrutinen är den officiellt stödda node.js-drivrutinen för MongoDB.
  5. Restify – restify är ett lätt ramverk, liknande uttryck för att bygga REST API: er
  6. Bluebird – Bluebird är ett fullfjädrat löftesbibliotek med fokus på innovativa funktioner och prestanda

Använda moduler i Node.js

För att använda moduler i en node.js applikation måste de först installeras med Node-pakethanteraren.

Kommandoraden nedan visar hur en modul "express" kan installeras.

npm installera express

Använda moduler i Node.js

  • Ovanstående kommando kommer att ladda ner de nödvändiga filerna som innehåller "expressmodulerna" och ta hand om installationen också
  • När modulen har installerats, för att kunna använda en modul i en Node.js-applikation, måste du använda nyckelordet 'require'. Detta nyckelord är ett sätt som Node.js använder för att införliva funktionaliteten hos en modul i en applikation.

Låt oss titta på ett exempel på hur vi kan använda nyckelordet "kräv". Nedanstående "Guru99"-kodexempel visar hur man använder funktionen require

Använda moduler i 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. I själva det första uttalandet använder vi nyckelordet "require" för att inkludera expressmodulen. "Express"-modulen är en optimerad JavaScript bibliotek för utveckling av Node.js. Detta är en av de mest använda Node.js-modulerna.
  2. Efter att modulen har inkluderats, för att kunna använda funktionaliteten i modulen, måste ett objekt skapas. Här skapas ett objekt för expressmodulen.
  3. När modulen är inkluderad med hjälp av kommandot "require" och ett "objekt" skapas, kan de nödvändiga metoderna för expressmodulen anropas. Här använder vi kommandot set för att ställa in vymotorn, som används för att ställa in mallmotorn som används i Node.js.
  4. Observera: -(Bara för läsarens förståelse; en mallmotor är ett tillvägagångssätt för att injicera värden i en applikation genom att plocka upp data från datafiler. Det här konceptet är ganska känt i Angular JS där de lockiga klammerparenteserna {{ key }} används för att ersätta värden i webbsidan Ordet "nyckel" i de lockiga klammerparenteserna betecknar i princip den variabel som kommer att ersättas med ett värde när sidan visas.)

  5. Här använder vi lyssna på-metoden för att få applikationen att lyssna på ett visst portnummer.

Hur man skapar NPM-moduler

Node.js har möjlighet att skapa anpassade moduler och låter dig inkludera dessa anpassade moduler i din Node.js-applikation.

Låt oss titta på ett enkelt exempel på hur vi kan skapa vår egen modul och inkludera den modulen i vår huvudapplikationsfil. Vår modul kommer bara att göra en enkel uppgift att lägga till två siffror.

Låt oss följa stegen nedan för att se hur vi kan skapa moduler och inkludera dem i vår ansökan.

Följande är steg för steg process om hur man skapar NPM-moduler

Steg 1) Skapa en fil och klistra in nedanstående kod
Skapa en fil som heter "Addition.js" och inkludera koden nedan. Den här filen kommer att innehålla logiken för din modul.

Nedan är koden som skulle gå in i den här filen;

Skapa NPM-moduler

var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};
  1. Nyckelordet "export" används för att säkerställa att den funktionalitet som definieras i den här filen faktiskt kan nås av andra filer.
  2. Vi definierar då en funktion som heter 'AddNumber'. Denna funktion är definierad för att ta 2 parametrar, a och b. Funktionen läggs till i modulen "exporterar" för att göra funktionen till en publik funktion som kan nås av andra applikationsmoduler.
  3. Vi får äntligen vår funktion att returnera parametrarnas mervärde.

Nu när vi har skapat vår anpassade modul som har funktionen att lägga till 2 nummer. Det är nu dags att skapa en applikation som kommer att anropa denna modul.

I nästa steg kommer vi faktiskt att se hur man skapar applikationen som kommer att anropa vår anpassade modul.

Steg 2) Skapa en applikationsfil
Skapa en fil som heter "app.js", som är din huvudsakliga programfil och lägg till koden nedan

Skapa NPM-moduler

var Addition=require('./Addition.js');
console.log(Addition.AddNumber(1,2));
  1. Vi använder nyckelordet "require" för att inkludera funktionen i filen Addition.js.
  2. Eftersom funktionerna i filen Addition.js nu är tillgängliga kan vi nu göra ett anrop till AddNumber-funktionen. I funktionen skickar vi två siffror som parametrar. Vi visar sedan värdet i konsolen.

Skapa NPM-moduler

Produktion:

  • När du kör filen app.js får du en utdata med värde 3 i konsolloggen.
  • Resultatet beror på att funktionen AddNumber i filen Addition.js anropades framgångsrikt, och det returnerade värdet 3 visades i konsolen.

Notera: – Vi använder ännu inte "Node Package Manager" för att installera vår Addition.js-modul. Detta beror på att modulen redan är en del av vårt projekt på den lokala maskinen. Node-pakethanteraren kommer med i bilden när du publicerar en modul på internet, vilket vi ser i det efterföljande ämnet.

Utöka moduler i Node.js

När du skapar moduler är det också möjligt att utöka eller ärva en modul från en annan.

I modern programmering är det ganska vanligt att bygga ett bibliotek med vanliga moduler och sedan utöka funktionaliteten för dessa vanliga moduler om det behövs.

Låt oss titta på ett exempel på hur vi kan utöka moduler i Node.js.

Steg 1) Skapa basmodulen.

I vårt exempel, skapa en fil som heter "Tutorial.js" och placera koden nedan.

I den här koden skapar vi bara en funktion som returnerar en sträng till konsolen. Strängen som returneras är "Guru99 Tutorial".

Utöka moduler i Node.js

var exports=module.exports={};
exports.tutorial=function()
{
console.log("Guru99 Tutorial")
}
  1. Exportmodulen används så att vilken funktion som än är definierad i den här filen kan vara tillgänglig i andra moduler i Node.js
  2. Vi skapar en funktion som heter tutorial som kan användas i andra Node.js-moduler.
  3. Vi visar en sträng "Guru99 Tutorial" i konsolen när denna funktion anropas.

Nu när vi har skapat vår basmodul som heter Tutorial.js. Det är nu dags att skapa ytterligare en modul som kommer att utöka denna basmodul.

Vi kommer att utforska hur man gör detta i nästa steg.

Steg 2) Därefter kommer vi att skapa vår utökade modul. Skapa en ny fil som heter "NodeTutorial.js" och placera koden nedan i filen.

Utöka moduler i 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();
}
}

Observera följande nyckelpunkter om ovanstående kod

  1. Vi använder funktionen "require" i själva den nya modulfilen. Eftersom vi ska utöka den befintliga modulfilen "Tutorial.js", måste vi först inkludera den innan vi utökar den.
  2. Vi skapar sedan en funktion som heter "Nodetutorial." Denna funktion kommer att göra 2 saker,
  • Det kommer att skicka en sträng "Node Tutorial" till konsolen.
  • Den kommer att skicka strängen "Guru99 Tutorial" från basmodulen "Tutorial.js" till vår utökade modul "NodeTutorial.js".
  1. Här utför vi det första steget för att skicka en sträng till "Node Tutorial" till konsolen.
  2. Nästa steg är att anropa funktionen från vår Tutorial-modul, som kommer att mata ut strängen "Guru99 Tutorial" till console.log.

Steg 3) Skapa din huvudsakliga app.js-fil, som är din huvudsakliga programfil och inkludera koden nedan.

Utöka moduler i 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

Ovanstående kod gör följande saker;

  1. Vår huvudapplikationsfil kallar nu modulen "NodeTutorial".
  2. Vi kallar funktionen "NodeTutorial". Genom att anropa den här funktionen kommer texten "Node Tutorial" att visas i konsolloggen.
  3. Sedan har vi utökat vår Tutorial.js-modul och exponerat en funktion som heter pTutor. Den anropar också handledningsmodulen i Tutorial.js-modulen, och texten "Guru99 Tutorial" kommer också att visas på konsolen.

Produktion:

Eftersom vi har kört ovanstående app.js-kod med hjälp av Node får vi följande utdata i filen console.log

  • Handledning för nod
  • Guru99-handledning

NPM (Node Package Manager) Publicera paket

Man kan publicera sin egen modul till sin egen Github förvaret.

Genom att publicera din modul på en central plats behöver du inte installera dig själv på varje maskin som kräver det.

Istället kan du använda installationskommandot för npm och installera din publicerade npm-modul.

Följande steg måste följas för att publicera din npm-modul

Steg 1) Skapa ditt arkiv på GitHub (ett hanteringsverktyg för kodlagring online). Den kan användas för att vara värd för dina kodlager.

steg 2) Du måste berätta för din lokala npm-installation om vem du är. Vilket innebär att vi måste berätta för npm vem som är författaren till denna modul, vad är e-post-ID och eventuell företags-URL som är tillgänglig som måste kopplas till detta ID. Alla dessa detaljer kommer att läggas till din npm-modul när den publiceras.

Kommandon nedan ställer in namn, e-postadress och URL för författaren till npm-modulen.

npm satte init-author-name "Guru99."

npm set init-author-email “guru99@gmail.com”

npm set init-author-url “http://Guru99.com”

Steg 3) Nästa steg är att logga in på npm med hjälp av inloggningsuppgifterna i det sista steget. För att logga in måste du använda kommandot nedan

npm login

Steg 4) Initiera ditt paket – Nästa steg är att initiera paketet för att skapa filen package.json. Detta kan göras genom att utfärda kommandot nedan

npm init

När du utfärdar kommandot ovan kommer du att bli tillfrågad om några frågor. Det viktigaste är versionsnumret för din modul.

Steg 5) Publicera till GitHub – Nästa steg är att publicera dina källfiler till GitHub. Detta kan göras genom att köra kommandona nedan.

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

Steg 6) Publicera din modul – Den sista biten är att publicera din modul i npm-registret. Detta görs via kommandot nedan.

npm publish

Hantera tredjepartspaket med npm

Som vi har sett har "Node package manager" förmågan att hantera moduler, som krävs av Node.js-applikationer.

Låt oss titta på några av de funktioner som är tillgängliga i nodpakethanteraren för att hantera moduler

  1. Installera paket i globalt läge – Moduler kan installeras på global nivå, vilket i princip betyder att dessa moduler skulle vara tillgängliga för alla Node.js-projekt på en lokal maskin. Exemplet nedan visar hur du installerar "expressmodulen" med det globala alternativet.npm installera express –global Det globala alternativet i ovanstående uttalande är det som gör att modulerna kan installeras på global nivå.
  2. Listar alla globala paket installerade på en lokal dator. Detta kan göras genom att utföra kommandot nedan i kommandotolkennpm-lista – globalNedan är utgången som kommer att visas om du tidigare har installerat "expressmodulen" på ditt system. Här kan du se de olika modulerna installerade på den lokala maskinen.

Hantera tredjepartspaket med NPM

  1. Installera en specifik version av ett paket – Ibland kan det finnas ett krav på att bara installera den specifika versionen av ett paket. När du vet paketnamnet och den relevanta versionen som behöver installeras kan du använda kommandot npm install för att installera den specifika versionen. Exemplet nedan visar hur du installerar modulen som heter understreck med en specifik version av 1.7.0npm installation understrykning@1.7.0
  2. Uppdatera en paketversion – Ibland kan du ha en äldre version av ett paket i ett system, och du kanske vill uppdatera till den senaste som finns på marknaden. För att göra detta kan man använda kommandot npm update. Exemplet nedan visar hur du uppdaterar understreckspaketet till den senaste versionennpm uppdatering understreck
  3. Söka efter ett visst paket – För att söka om en viss version är tillgänglig på det lokala systemet eller inte, kan du använda sökkommandot för npm. Exemplet nedan kommer att kontrollera om expressmodulen är installerad på den lokala maskinen eller inte.npm sök express
  4. Avinstallera ett paket – På samma sätt som du kan installera ett paket, kan du också avinstallera ett paket. Avinstallationen av ett paket görs med avinstallationskommandot npm. Exemplet nedan visar hur du avinstallerar expressmodulennpm avinstallera express

Vad är filen package.json

Filen "package.json" används för att hålla metadata om ett visst projekt. Denna information ger Node-pakethanteraren den nödvändiga informationen för att förstå hur projektet ska hanteras tillsammans med dess beroenden.

Package.json-filerna innehåller information som projektbeskrivningen, versionen av projektet i en viss distribution, licensinformation och konfigurationsdata.

Package.json-filen finns normalt i rotkatalogen för ett Node.js-projekt.

Låt oss ta ett exempel på hur strukturen på en modul ser ut när den installeras via npm.

Nedanstående ögonblicksbild visar filinnehållet i expressmodulen när den ingår i ditt Node.js-projekt. Från ögonblicksbilden kan du se filen package.json i expressmappen.

Filen Package.json

Om du öppnar filen package.json kommer du att se mycket information i filen.

Nedan är en ögonblicksbild av en del av filen. De express@~4.13.1 nämner versionsnumret för den expressmodul som används.

Filen Package.json

Sammanfattning

  • En modul i Node.js är en logisk inkapsling av kod i en enda enhet. Separation i moduler gör koden mer hanterbar och underhållbar för framtida ändamål
  • Det finns många moduler tillgängliga på marknaden som kan användas inom Node.js som express, underscore, MongoDBEtc.
  • Nodpakethanteraren (npm) används för att ladda ner och installera moduler som sedan kan användas i en Node.js-applikation.
  • Man kan skapa anpassade NPM-moduler, utöka dessa moduler och även publicera dessa moduler.
  • Node-pakethanteraren har en komplett uppsättning kommandon för att hantera npm-modulerna på det lokala systemet som installation, avinstallation, sökning, etc.
  • Filen package.json används för att hålla hela metadatainformationen för en npm-modul.