Node.js NPM-zelfstudie: modules maken, uitbreiden en publiceren

Node.js-modules

Een module in Node.js is een logische inkapseling van code in één eenheid. Het is altijd een goede programmeerpraktijk om code altijd op een zodanige manier te scheiden dat deze beter beheersbaar en onderhoudbaar wordt voor toekomstige doeleinden. Dat is waar modules in Node.js in actie komen.

Omdat elke module een onafhankelijke entiteit is met zijn eigen ingekapselde functionaliteit, kan deze als een afzonderlijke werkeenheid worden beheerd.

Wat is een module in Node.js?

Zoals eerder vermeld, zijn modules in Node js een manier om code in een afzonderlijke logische eenheid in te kapselen. Er zijn veel kant-en-klare modules op de markt beschikbaar die binnen Node js kunnen worden gebruikt.

Hieronder staan ​​enkele van de populaire modules die worden gebruikt in een Node js-applicatie

  1. Express kader – Express is een minimaal en flexibel Node js-webapplicatieframework dat een robuuste set functies voor internet biedt mobiel toepassingen.
  2. socket.io – Socket.IO maakt real-time bidirectionele, op gebeurtenissen gebaseerde communicatie mogelijk. Deze module is goed voor het maken van op chatten gebaseerde applicaties.
  3. Jade – Jade is een krachtige sjabloonengine en geïmplementeerd met JavaScript voor knooppunten en browsers.
  4. MongoDB - The MongoDB Node.js-stuurprogramma is het officieel ondersteunde node.js-stuurprogramma voor MongoDB.
  5. Kom tot rust – restify is een lichtgewicht raamwerk, vergelijkbaar met Express voor het bouwen van REST API's
  6. Bluebird – Bluebird is een volledig uitgeruste promise-bibliotheek met een focus op innovatieve functies en prestaties

Modules gebruiken in Node.js

Om modules te gebruiken in a Node.js applicatie, moeten ze eerst worden geïnstalleerd met behulp van de Node-pakketbeheerder.

De onderstaande opdrachtregel laat zien hoe een module “express” kan worden geïnstalleerd.

npm install express

Modules gebruiken in Node.js

  • De bovenstaande opdracht downloadt de benodigde bestanden die de “express-modules” bevatten en zorgt ook voor de installatie
  • Nadat de module is geïnstalleerd, moet u het trefwoord 'require' gebruiken om een ​​module in een Node.js-applicatie te kunnen gebruiken. Dit trefwoord is een manier die Node.js gebruikt om de functionaliteit van een module in een applicatie op te nemen.

Laten we eens kijken naar een voorbeeld van hoe we het trefwoord 'vereisen' kunnen gebruiken. Het onderstaande codevoorbeeld “Guru99” laat zien hoe u de require-functie gebruikt

Modules gebruiken in 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. In de eerste verklaring zelf gebruiken we het sleutelwoord “require” om de express-module op te nemen. De “express”-module is geoptimaliseerd JavaScript bibliotheek voor Node.js-ontwikkeling. Dit is een van de meest gebruikte Node.js-modules.
  2. Nadat de module is opgenomen, moet er een object worden aangemaakt om de functionaliteit binnen de module te kunnen gebruiken. Hier wordt een object van de express-module gemaakt.
  3. Zodra de module is opgenomen met behulp van het commando “require” en een “object” is aangemaakt, kunnen de vereiste methoden van de express-module worden aangeroepen. Hier gebruiken we de opdracht set om de view-engine in te stellen, die wordt gebruikt om de template-engine in te stellen die in Node.js wordt gebruikt.
  4. Opmerking: -(Alleen ter verduidelijking van de lezer: een templating engine is een benadering voor het injecteren van waarden in een applicatie door data op te halen uit databestanden. Dit concept is vrij beroemd in Angular JS, waar de accolades {{ key }} worden gebruikt om waarden in de webpagina te vervangen. Het woord 'key' in de accolades duidt in principe de variabele aan die wordt vervangen door een waarde wanneer de pagina wordt weergegeven.)

  5. Hier gebruiken we de methode luisteren naar om de toepassing op een bepaald poortnummer te laten luisteren.

NPM-modules maken

Node.js heeft de mogelijkheid om aangepaste modules te maken en stelt u in staat deze aangepaste modules op te nemen in uw Node.js-applicatie.

Laten we eens kijken naar een eenvoudig voorbeeld van hoe we onze eigen module kunnen maken en die module kunnen opnemen in ons hoofdtoepassingsbestand. Onze module zal gewoon een eenvoudige taak uitvoeren van het optellen van twee getallen.

Laten we de onderstaande stappen volgen om te zien hoe we modules kunnen maken en deze in onze applicatie kunnen opnemen.

Hieronder volgt een stapsgewijs proces voor het maken van NPM-modules

Stap 1) Maak een bestand en plak onderstaande code
Maak een bestand met de naam "Addition.js" en voeg de onderstaande code toe. Dit bestand bevat de logica voor uw module.

Hieronder staat de code die in dit bestand zou komen;

NPM-modules maken

var exports=module.exports={};
exports.AddNumber=function(a,b)
{
return a+b;
};
  1. Het trefwoord “exports” wordt gebruikt om ervoor te zorgen dat de functionaliteit die in dit bestand is gedefinieerd ook daadwerkelijk toegankelijk is voor andere bestanden.
  2. Vervolgens definiëren we een functie met de naam 'AddNumber'. Deze functie is gedefinieerd om twee parameters te nemen, a en b. De functie is toegevoegd aan de module “exports” om de functie een publieke functie te maken die toegankelijk is voor andere applicatiemodules.
  3. We zorgen er eindelijk voor dat onze functie de toegevoegde waarde van de parameters retourneert.

Nu we onze aangepaste module hebben gemaakt die de functionaliteit heeft om 2 getallen op te tellen, is het tijd om een ​​applicatie te maken die deze module zal aanroepen.

In de volgende stap zullen we zien hoe we de applicatie kunnen maken die onze aangepaste module zal aanroepen.

Stap 2) Maak een aanvraagdossier aan
Maak een bestand met de naam 'app.js', uw hoofdtoepassingsbestand en voeg de onderstaande code toe

NPM-modules maken

var Addition=require('./Addition.js');
console.log(Addition.AddNumber(1,2));
  1. We gebruiken het trefwoord ‘require’ om de functionaliteit in het Addition.js-bestand op te nemen.
  2. Omdat de functies in het Addition.js-bestand nu toegankelijk zijn, kunnen we nu een aanroep doen naar de AddNumber-functie. In de functie geven we 2 getallen door als parameters. Vervolgens geven we de waarde weer in de console.

NPM-modules maken

uitgang:

  • Wanneer u het app.js-bestand uitvoert, krijgt u een uitvoer van waarde 3 in het consolelogboek.
  • Het resultaat is dat de functie AddNumber in het bestand Addition.js succesvol is aangeroepen en de geretourneerde waarde 3 in de console is weergegeven.

Opmerking: – We gebruiken de “Node package manager” nog niet om onze Addition.js-module te installeren. Dit komt omdat de module al deel uitmaakt van ons project op de lokale machine. De Node-pakketbeheerder komt in beeld als je een module op internet publiceert, wat we in het volgende onderwerp zien.

Modules uitbreiden in Node.js

Bij het maken van modules is het ook mogelijk om de ene module van de andere uit te breiden of over te nemen.

In de moderne programmering is het vrij gebruikelijk om een ​​bibliotheek met gemeenschappelijke modules te bouwen en vervolgens de functionaliteit van deze gemeenschappelijke modules indien nodig uit te breiden.

Laten we een voorbeeld bekijken van hoe we modules in Node.js kunnen uitbreiden.

Stap 1) Maak de basismodule.

In ons voorbeeld maakt u een bestand met de naam “Tutorial.js” en plaatst u de onderstaande code.

In deze code maken we slechts een functie die een string retourneert naar de console. De geretourneerde string is “Guru99 Tutorial”.

Modules uitbreiden in Node.js

var exports=module.exports={};
exports.tutorial=function()
{
console.log("Guru99 Tutorial")
}
  1. De exportmodule wordt gebruikt zodat de functie die in dit bestand is gedefinieerd, beschikbaar kan zijn in andere modules in Node.js
  2. We maken een functie met de naam tutorial die in andere Node.js-modules kan worden gebruikt.
  3. We geven een string “Guru99 Tutorial” weer in de console wanneer deze functie wordt aangeroepen.

Nu we onze basismodule genaamd Tutorial.js hebben gemaakt. Het is nu tijd om een ​​nieuwe module te maken die deze basismodule uitbreidt.

Hoe we dit kunnen doen, gaan we in de volgende stap onderzoeken.

Stap 2) Vervolgens zullen we onze uitgebreide module maken. Maak een nieuw bestand met de naam "NodeTutorial.js" en plaats de onderstaande code in het bestand.

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

Let op de volgende belangrijke punten over de bovenstaande code

  1. We gebruiken de functie "vereisen" in het nieuwe modulebestand zelf. Omdat we het bestaande modulebestand “Tutorial.js” gaan uitbreiden, moeten we dit eerst opnemen voordat we het uitbreiden.
  2. Vervolgens maken we een functie met de naam 'Nodetutorial'. Deze functie zal 2 dingen doen,
  • Het stuurt een string “Node Tutorial” naar de console.
  • Het stuurt de string “Guru99 Tutorial” van de basismodule “Tutorial.js” naar onze uitgebreide module “NodeTutorial.js”.
  1. Hier voeren we de eerste stap uit om een ​​string naar “Node Tutorial” naar de console te sturen.
  2. De volgende stap is het aanroepen van de functie vanuit onze Tutorial-module, die de string “Guru99 Tutorial” naar console.log zal uitvoeren.

Stap 3) Maak uw hoofdapp.js-bestand, uw hoofdtoepassingsbestand, en neem de onderstaande code op.

Modules uitbreiden in 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

De bovenstaande code doet het volgende:

  1. Ons hoofdtoepassingsbestand noemt nu de module “NodeTutorial”.
  2. We roepen de functie "NodeTutorial" aan. Door deze functie aan te roepen, wordt de tekst "Node Tutorial" weergegeven in het consolelogboek.
  3. Omdat we onze Tutorial.js module hebben uitgebreid en een functie genaamd pTutor hebben blootgelegd, roept het ook de tutorial module aan in de Tutorial.js module, en de tekst “Guru99 Tutorial” zal ook worden weergegeven op de console.

Output:

Omdat we de bovenstaande app.js-code hebben uitgevoerd met Node, krijgen we de volgende uitvoer in het console.log-bestand

  • Knooppunt-zelfstudie
  • Guru99-zelfstudie

NPM (Node Package Manager) Publicatiepakket

Men kan zijn eigen module naar zijn eigen module publiceren Github repository.

Door uw module op een centrale locatie te publiceren, hoeft u vervolgens niet meer zelf te installeren op elke machine die dit nodig heeft.

In plaats daarvan kunt u de install-opdracht van npm gebruiken en uw gepubliceerde npm-module installeren.

De volgende stappen moeten worden gevolgd om uw npm-module te publiceren

Stap 1) Maak uw repository op GitHub (een online tool voor het beheren van coderepository). Het kan worden gebruikt voor het hosten van uw codeopslagplaatsen.

Stap 2) U moet uw lokale npm-installatie vertellen wie u bent. Dat betekent dat we npm moeten vertellen wie de auteur is van deze module, wat de e-mail-id is en welke bedrijfs-URL beschikbaar is en aan deze id moet worden gekoppeld. Al deze details worden toegevoegd aan uw npm-module wanneer deze wordt gepubliceerd.

Met de onderstaande opdrachten stelt u de naam, het e-mailadres en de URL van de auteur van de npm-module in.

npm set init-auteur-naam “Guru99.”

npm set init-auteur-e-mail “guru99@gmail.com”

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

Stap 3) De volgende stap is inloggen op npm met de inloggegevens die u in de laatste stap hebt opgegeven. Om in te loggen, moet u de onderstaande opdracht gebruiken

npm login

Stap 4) Initialiseer uw pakket – De volgende stap is het initialiseren van het pakket om het package.json-bestand te maken. Dit kunt u doen door het onderstaande commando uit te voeren

npm init

Wanneer u de bovenstaande opdracht uitvoert, wordt u om enkele vragen gevraagd. De belangrijkste is het versienummer van uw module.

Stap 5) Publiceren naar GitHub – De volgende stap is het publiceren van uw bronbestanden naar GitHub. Dit kunt u doen door de onderstaande opdrachten uit te voeren.

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

Stap 6) Publiceer uw module – Het laatste deel is het publiceren van uw module in het npm-register. Dit gebeurt via het onderstaande commando.

npm publish

Pakketten van derden beheren met npm

Zoals we hebben gezien, heeft de “Node-pakketbeheerder” de mogelijkheid om modules te beheren die vereist zijn voor Node.js-applicaties.

Laten we eens kijken naar enkele van de functies die beschikbaar zijn in de knooppuntpakketbeheerder voor het beheren van modules

  1. Pakketten installeren in de globale modus – Modules kunnen op mondiaal niveau worden geïnstalleerd, wat in feite betekent dat deze modules beschikbaar zijn voor alle Node.js-projecten op een lokale machine. Het onderstaande voorbeeld laat zien hoe u de “express module” installeert met de globale optie.npm install express –global De globale optie in de bovenstaande verklaring maakt het mogelijk dat de modules op mondiaal niveau worden geïnstalleerd.
  2. Een overzicht van alle globale pakketten die op een lokale computer zijn geïnstalleerd. Dit kunt u doen door de onderstaande opdracht uit te voeren via de opdrachtpromptnpm-lijst – globaalHieronder ziet u de uitvoer die wordt weergegeven als u eerder de “express-module” op uw systeem heeft geïnstalleerd. Hier kunt u de verschillende modules zien die op de lokale machine zijn geïnstalleerd.

Pakketten van derden beheren met NPM

  1. Een specifieke versie van een pakket installeren – Soms kan het nodig zijn om alleen de specifieke versie van een pakket te installeren. Zodra u de pakketnaam kent en de relevante versie die moet worden geïnstalleerd, kunt u de opdracht npm install gebruiken om die specifieke versie te installeren. Het onderstaande voorbeeld laat zien hoe u de module genaamd underscore installeert met een specifieke versie van 1.7.0npm install onderstrepen@1.7.0
  2. Een pakketversie bijwerken – Soms heeft u een oudere versie van een pakket in een systeem en wilt u misschien updaten naar de nieuwste versie die op de markt verkrijgbaar is. Om dit te doen, kan men de opdracht npm update gebruiken. In het onderstaande voorbeeld ziet u hoe u het onderstrepingspakket kunt bijwerken naar de nieuwste versienpm update onderstrepingsteken
  3. Zoeken naar een bepaald pakket – Om te zoeken of een bepaalde versie beschikbaar is op het lokale systeem of niet, kunt u de zoekopdracht van npm gebruiken. Het onderstaande voorbeeld controleert of de express module op de lokale machine is geïnstalleerd of niet.npm zoekexpress
  4. Een pakket verwijderen – Op dezelfde manier waarop u een pakket kunt installeren, kunt u ook een pakket verwijderen. Het verwijderen van een pakket gebeurt met het verwijdercommando van npm. In het onderstaande voorbeeld ziet u hoe u de express-module verwijdertnpm verwijder express

Wat is het package.json-bestand

Het bestand “package.json” wordt gebruikt om de metadata over een bepaald project. Deze informatie biedt de Node-pakketbeheerder de nodige informatie om te begrijpen hoe het project moet worden afgehandeld, samen met de afhankelijkheden ervan.

De package.json-bestanden bevatten informatie zoals de projectbeschrijving, de versie van het project in een bepaalde distributie, licentie-informatie en configuratiegegevens.

Het package.json-bestand bevindt zich normaal gesproken in de hoofdmap van een Node.js-project.

Laten we een voorbeeld nemen van hoe de structuur van een module eruit ziet wanneer deze via npm is geïnstalleerd.

De onderstaande momentopname toont de bestandsinhoud van de express-module wanneer deze is opgenomen in uw Node.js-project. Vanuit de momentopname kunt u het bestand package.json in de express-map zien.

Het Package.json-bestand

Als u het bestand package.json opent, ziet u veel informatie in het bestand.

Hieronder ziet u een momentopname van een deel van het bestand. De express@~4.13.1 vermeldt het versienummer van de gebruikte express-module.

Het Package.json-bestand

Samenvatting

  • Een module in Node.js is een logische inkapseling van code in één eenheid. Door de scheiding in modules wordt de code beter beheersbaar en onderhoudbaar voor toekomstige doeleinden
  • Er zijn veel modules op de markt beschikbaar die binnen Node.js kunnen worden gebruikt, zoals express, underscore, MongoDB, Etc.
  • De knooppuntpakketbeheerder (npm) wordt gebruikt om modules te downloaden en te installeren die vervolgens kunnen worden gebruikt in een Node.js-toepassing.
  • U kunt aangepaste NPM-modules maken, deze modules uitbreiden en deze modules ook publiceren.
  • De Node-pakketbeheerder beschikt over een complete set opdrachten om de npm-modules op het lokale systeem te beheren, zoals installeren, verwijderen, zoeken, enz.
  • Het package.json-bestand wordt gebruikt om de volledige metadata-informatie voor een npm-module te bewaren.