En modul i Node.js är en logisk inkapsling av kod i en enda enhet. Det är alltid en bra programmeringspraxis att alltid separera koden på ett sådant sätt att den blir mer hanterbar och underhållbar för framtida ändamål. Det är där moduler i Node.js kommer i aktion.
Eftersom varje modul är en oberoende enhet med sin egen inkapslade funktionalitet kan den hanteras som en separat arbetsenhet.
I den här handledningen lär du dig-
- Vad är moduler i Node.js
- Använda moduler i Node.js
- Skapa NPM-moduler
- Utöka moduler
- Publicera NPM-moduler
- Hantera tredjepartspaket med npm
- Vad är filen package.json
Vad är moduler i Node.js?
Som nämnts tidigare är moduler i nod js ett sätt att inkapsla 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 följer några av de populära modulerna som används i en Node js-applikation
- Express-ramverk - Express är ett minimalt och flexibelt ramverk för Node js-webbapplikation som ger en robust uppsättning funktioner för webb- och mobilapplikationer.
- Socket.io - Socket.IO möjliggör realtids dubbelriktad händelsebaserad kommunikation. Den här modulen är bra för att skapa chattbaserade applikationer.
- Jade - Jade är en högpresterande mallmotor och implementerad med JavaScript för nod och webbläsare.
- MongoDB - MongoDB Node.js-drivrutinen är den officiellt stödda node.js-drivrutinen för MongoDB.
- Restify - restify är en lättviktsram som liknar express för att bygga REST API: er
- Bluebird - Bluebird är ett fullfjädrat löftebibliotek med fokus på innovativa funktioner och prestanda
Använda moduler i Node.js
För att kunna använda moduler i ett Node.js-program måste de först installeras med Node-pakethanteraren.
Kommandoraden nedan visar hur en modul "express" kan installeras.
npm installera express
- Ovanstående kommando laddar ner nödvändiga filer som innehåller "expressmodulerna" och tar också hand om installationen
- När modulen har installerats måste du använda nyckelordet 'kräver' för att kunna använda en modul i ett Node.js-program. Detta nyckelord är ett sätt som Node.js använder för att integrera funktionerna i en modul i en applikation.
Låt oss titta på ett exempel på hur vi kan använda nyckelordet "kräver". Nedanstående "Guru99" -kodexempel visar hur man använder funktionen för att kräva
var express=require('express');var app=express();app.set('view engine','jade');app.get('/',function(req,res){});var server=app.listen(3000,function(){});
- I det första uttalandet använder vi nyckelordet "kräver" för att inkludera expressmodulen. Modulen "express" är ett optimerat JavaScript-bibliotek för utveckling av Node.js. Detta är en av de vanligaste Node.js-modulerna.
- När modulen har inkluderats måste ett objekt skapas för att använda funktionaliteten i modulen. Här skapas ett objekt för expressmodulen.
- När modulen har inkluderats med kommandot "kräver" och ett "objekt" har skapats kan de erforderliga metoderna för expressmodulen åberopas. Här använder vi kommandot set för att ställa in visningsmotorn, som används för att ställa in mallmotorn som används i Node.js.
Obs: - (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. Detta koncept är ganska känt i Angular JS där de lockiga hakparenteserna {{key}} används för att ersätter värden på webbsidan. Ordet "nyckel" i de lockiga hakparenteserna anger i princip variabeln som kommer att ersättas med ett värde när sidan visas.)
- Här använder vi lyssna på-metoden för att få applikationen att lyssna på ett visst portnummer.
Skapa NPM-moduler
Node.js har möjlighet att skapa anpassade moduler och låter dig inkludera dessa anpassade moduler i ditt Node.js-program.
Låt oss titta på ett enkelt exempel på hur vi kan skapa vår egen modul och inkludera den modulen i vår huvudsakliga applikationsfil. Vår modul gör bara en enkel uppgift att lägga till två nummer.
Låt oss följa stegen nedan för att se hur vi kan skapa moduler och inkludera dem i vår applikation.
Steg 1) Skapa en fil som heter "Addition.js" och inkludera nedanstående kod. Den här filen innehåller logiken för din modul.
Nedan är koden som skulle gå in i denna fil;
var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
- 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.
- Vi definierar sedan en funktion som heter 'AddNumber'. Denna funktion definieras för att ta två parametrar, a och b. Funktionen läggs till i modulen "exporterar" för att göra funktionen som en offentlig funktion som kan nås av andra applikationsmoduler.
- 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 två nummer. Det är nu dags att skapa en applikation som kallar den här modulen.
I nästa steg kommer vi faktiskt se hur man skapar applikationen som kallar vår anpassade modul.
Steg 2) Skapa en fil som heter "app.js", som är din huvudsakliga applikationsfil och lägg till koden nedan
var Addition=require('./Addition.js');console.log(Addition.AddNumber(1,2));
- Vi använder nyckelordet "kräver" för att inkludera funktionaliteten i filen Addition.js.
- Eftersom funktionerna i Addition.js-filen nu är tillgängliga kan vi nu ringa till AddNumber-funktionen. I funktionen skickar vi två nummer som parametrar. Vi visar sedan värdet i konsolen.
Utgång :
- När du kör app.js-filen får du en utgång med värde 3 i konsolloggen.
- Resultatet beror på att AddNumber-funktionen i Addition.js-filen anropades framgångsrikt och det returnerade värdet 3 visas i konsolen.
Obs: - Vi använder för närvarande inte "Node-pakethanteraren" 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 på bilden när du publicerar en modul på internet, som vi ser i nästa ämne.
Utöka moduler
När du skapar moduler är det också möjligt att utöka eller ärva en modul från en annan.
I dagens programmering är det ganska vanligt att bygga ett bibliotek med vanliga moduler och sedan utöka funktionerna hos 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 skapar du en fil som heter "Tutorial.js" och placerar nedanstående kod.
I den här koden skapar vi bara en funktion som returnerar en sträng till konsolen. Strängen som returneras är "Guru99 Tutorial".
var exports=module.exports={};exports.tutorial=function(){console.log("Guru99 Tutorial")}
- Exportmodulen används så att vilken funktion som helst som definieras i den här filen kan vara tillgänglig i andra moduler i Node.js
- Vi skapar en funktion som kallas tutorial som kan användas i andra Node.js-moduler.
- 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 en annan modul som kommer att utöka denna basmodul.
Vi kommer att undersöka hur man gör detta i nästa steg.
Steg 2) Därefter skapar vi vår utökade modul. Skapa en ny fil som heter "NodeTutorial.js" och placera koden nedan i filen.
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();}}
Observera följande viktiga punkter om ovanstående kod
- Vi använder funktionen "kräver" i själva den nya modulfilen. Eftersom vi ska utvidga den befintliga modulfilen "Tutorial.js", måste vi först inkludera den innan den förlängs.
- Vi skapar sedan en funktion som heter "Nodetutorial." Denna funktion kommer att göra två saker,
- Den kommer att skicka en sträng "Node Tutorial" till konsolen.
- Den skickar strängen "Guru99 Tutorial" från basmodulen "Tutorial.js" till vår utökade modul "NodeTutorial.js".
- Här genomför vi det första steget för att skicka en sträng till "Node Tutorial" till konsolen.
- Nästa steg är att anropa funktionen från vår Tutorial-modul, som skickar strängen "Guru99 Tutorial" till console.log.
Steg 3) Skapa din huvudapp.js-fil, som är din huvudapplikationsfil och inkludera nedanstående kod.
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
Ovanstående kod gör följande saker;
- Vår huvudsakliga applikationsfil kallar nu modulen "NodeTutorial".
- Vi kallar funktionen "NodeTutorial". Genom att anropa den här funktionen kommer texten "Node Tutorial" att visas i konsolloggen.
- Eftersom vi har utökat vår Tutorial.js-modul och exponerat en funktion som heter pTutor. Det kallas också självstudiemodulen 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 console.log-filen
- Noderhandledning
- Guru99-handledning
Publicera NPM-moduler (Node Package Manager)
Man kan publicera sin egen modul till sitt eget Github-arkiv.
Genom att publicera din modul till en central plats är du inte belastad med att behöva 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 förråd på GitHub (ett verktyg för hantering av kodförvar online). Den kan användas för att vara värd för dina kodförråd.
Steg 2 ) Du måste informera din lokala npm-installation om vem du är. Vilket innebär att vi måste berätta för npm vem som är författare till den här modulen, vad är e-post-id: t och vilken företags-URL som är tillgänglig som behöver associeras med detta id. Alla dessa detaljer läggs till i din npm-modul när den publiceras.
Kommandona nedan ställer in namnet, e-postadressen och URL: en för författaren till npm-modulen.
npm ställa in init.author.name "Guru99."
npm set init.author.email "Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att visa det."
npm ställa in init.author.url http://Guru99.com
Steg 3) Nästa steg är att logga in på npm med de referenser som anges i det sista steget. För att logga in måste du använda kommandot nedan
npm login
Steg 4) Initiera paketet - 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 ovanstående kommando kommer du att bli ombedd att ställa 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.1git 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-pakethanteraren" möjligheten att hantera moduler som krävs av Node.js-applikationer.
Låt oss titta på några av de funktioner som finns tillgängliga i nodpakethanteraren för hantering av moduler
-
Installera paket i globalt läge - Moduler kan installeras på global nivå, vilket i grund och botten betyder att dessa moduler skulle vara tillgängliga för alla Node.js-projekt på en lokal maskin. Exemplet nedan visar hur man 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å.
-
Listar alla globala paket installerade på en lokal maskin. Detta kan göras genom att utföra kommandot nedan i kommandotolken
lista över npm - globala
Nedan visas den utdata som visas om du tidigare har installerat "express-modulen" på ditt system.
Här kan du se de olika modulerna som är installerade på den lokala maskinen.
-
Installera en specifik version av ett paket - Ibland kan det finnas ett krav att bara installera den specifika versionen av ett paket. När du väl känner till paketnamnet och den relevanta versionen som behöver installeras kan du använda kommandot npm installera för att installera den specifika versionen.
Exemplet nedan visar hur du installerar modulen kallad understrykning med en specifik version av 1.7.0
npm installera [email protected]
-
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 understrykningspaketet till den senaste versionen
npm uppdatering understryker
-
Söka efter ett visst paket - För att söka om en viss version är tillgänglig i det lokala systemet eller inte kan du använda sökkommandot npm. I exemplet nedan kontrolleras om expressmodulen är installerad på den lokala maskinen eller inte.
npm sök express
-
Avinstallera ett paket - Samma som du kan installera ett paket, du kan också avinstallera ett paket. Avinstallationen av ett paket görs med avinstallationskommandot npm. Exemplet nedan visar hur du avinstallerar expressmodulen
npm 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 nödvändig information 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 en moduls struktur 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.
Om du öppnar filen package.json ser du mycket information i filen.
Nedan visas en ögonblicksbild av en del av filen. Den express@~4.13.1 nämner versionsnummer uttryckmodul som används.
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, understrykning, MongoDB, etc.
- Node-pakethanteraren (npm) används för att ladda ner och installera moduler som sedan kan användas i ett Node.js-program.
- Man kan skapa anpassade NPM-moduler, utöka dessa moduler och publicera dessa moduler.
- Node-pakethanteraren har en komplett uppsättning kommandon för att hantera npm-modulerna på det lokala systemet, såsom installation, avinstallation, sökning etc.
- Package.json-filen används för att hålla hela metadatainformationen för en npm-modul.