Node.js NPM-zelfstudie: maken, publiceren, uitbreiden & Beheer

Inhoudsopgave:

Anonim

Een module in Node.js is een logische inkapseling van code in een enkele eenheid. Het is altijd een goede programmeerpraktijk om code altijd zo te scheiden dat deze beter beheersbaar en onderhoudbaar is 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 worden beheerd als een afzonderlijke werkeenheid.

In deze tutorial leer je-

  • Wat zijn modules in Node.js
  • Modules gebruiken in Node.js
  • NPM-modules maken
  • Uitbreiding van modules
  • NPM-modules publiceren
  • Pakketten van derden beheren met npm
  • Wat is het bestand package.json

Wat zijn modules in Node.js?

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

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

  1. Express-framework - Express is een minimaal en flexibel Node js-webapplicatieframework dat een robuuste set functies biedt voor het web en mobiele applicaties.
  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 - Het MongoDB Node.js-stuurprogramma is het officieel ondersteunde node.js-stuurprogramma voor MongoDB.
  5. Restify - restify is een lichtgewicht framework, vergelijkbaar met express voor het bouwen van REST API's
  6. Bluebird - Bluebird is een complete beloftebibliotheek met een focus op innovatieve functies en prestaties

Modules gebruiken in Node.js

Om modules in een Node.js-toepassing te gebruiken, 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

  • Het bovenstaande commando downloadt de nodige bestanden die de "express modules" bevatten en zorgt ook voor de installatie
  • Nadat de module is geïnstalleerd, moet u het trefwoord 'vereisen' gebruiken om een ​​module in een Node.js-toepassing te gebruiken. Dit sleutelwoord 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 vereiste functie kunt gebruiken

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 "vereisen" om de express-module op te nemen. De "express" -module is een geoptimaliseerde JavaScript-bibliotheek voor de ontwikkeling van Node.js. Dit is een van de meest gebruikte Node.js-modules.
  2. Nadat de module is opgenomen, moet er een object worden gemaakt om de functionaliteit binnen de module te gebruiken. Hier wordt een object van de express-module gemaakt.
  3. Zodra de module is opgenomen met behulp van het "vereisen" -commando en een "object" is gemaakt, 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 wordt gebruikt in Node.js.

    Opmerking: - (Alleen voor het begrip van de lezer; een sjabloonengine is een benadering voor het injecteren van waarden in een toepassing door gegevens op te halen uit gegevensbestanden. Dit concept is behoorlijk bekend in Angular JS, waarin de accolades {{key}} worden gebruikt om vervangt waarden op de webpagina. Het woord 'sleutel' in de accolades geeft in feite de variabele aan die zal worden vervangen door een waarde wanneer de pagina wordt weergegeven.)

  4. Hier gebruiken we de listen-to-methode 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 om die aangepaste modules op te nemen in uw Node.js-toepassing.

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 voert gewoon een eenvoudige taak uit door twee getallen toe te voegen.

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

Stap 1) 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 worden opgenomen;

var exports=module.exports={};exports.AddNumber=function(a,b){return a+b;};
  1. Het sleutelwoord "exports" wordt gebruikt om ervoor te zorgen dat de functionaliteit die in dit bestand is gedefinieerd, ook daadwerkelijk toegankelijk is voor andere bestanden.
  2. We definiëren dan een functie genaamd 'AddNumber'. Deze functie is gedefinieerd voor 2 parameters, a en b. De functie is toegevoegd aan de module "exports" om de functie te maken als een publieke functie waartoe andere applicatiemodules toegang hebben.
  3. We zorgen er eindelijk voor dat onze functie de toegevoegde waarde van de parameters teruggeeft.

Nu hebben we onze aangepaste module gemaakt die de functionaliteit heeft om 2 getallen toe te voegen. Het is nu 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 bestand met de naam "app.js", uw hoofdtoepassingsbestand en voeg de onderstaande code toe

var Addition=require('./Addition.js');console.log(Addition.AddNumber(1,2));
  1. We gebruiken het sleutelwoord "vereisen" om de functionaliteit op te nemen in het Addition.js-bestand.
  2. Omdat de functies in het Addition.js-bestand nu toegankelijk zijn, kunnen we nu de AddNumber-functie aanroepen. In de functie geven we 2 getallen door als parameters. We geven de waarde vervolgens weer in de console.

Uitgang :

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

Opmerking: - We gebruiken de "Node-pakketbeheerder" nog niet om onze Addition.js-module te installeren. Dit komt omdat de module al deel uitmaakt van ons project op de lokale computer. De Node-pakketbeheerder komt in beeld wanneer u een module op internet publiceert, die we in het volgende onderwerp zien.

Uitbreiding van modules

Bij het aanmaken 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 algemene modules indien nodig uit te breiden.

Laten we eens kijken naar een voorbeeld van hoe we modules kunnen uitbreiden in Node.js.

Stap 1) Maak de basismodule.

Maak in ons voorbeeld een bestand met de naam "Tutorial.js" en plaats de onderstaande code.

In deze code maken we gewoon een functie die een tekenreeks naar de console retourneert. De teruggezonden string is "Guru99 Tutorial".

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

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

In de volgende stap zullen we onderzoeken hoe u dit kunt doen.

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

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

Let op de volgende kernpunten over de bovenstaande code

  1. We gebruiken de functie "vereisen" in het nieuwe modulebestand zelf. Aangezien we het bestaande modulebestand "Tutorial.js" gaan uitbreiden, moeten we het eerst opnemen voordat we het uitbreiden.
  2. Vervolgens maken we een functie met de naam "Nodetutorial." Deze functie doet 2 dingen,
  • Het zal een string "Node Tutorial" naar de console sturen.
  • Het zal de string "Guru99 Tutorial" van de basismodule "Tutorial.js" naar onze uitgebreide module "NodeTutorial.js" sturen.
  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 sturen.

Stap 3) Maak uw hoofdbestand app.js, dat uw hoofdtoepassingsbestand is, en voeg de onderstaande code toe.

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

De bovenstaande code doet de volgende dingen;

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

Uitgang:

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

  • Node-zelfstudie
  • Guru99-zelfstudie

NPM-modules (Node Package Manager) publiceren

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

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

In plaats daarvan kunt u de installatieopdracht 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 beheerprogramma voor coderepository's). Het kan worden gebruikt voor het hosten van uw codebronnen.

Stap 2 ) U moet uw lokale npm-installatie laten weten wie u bent. Dit 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 die aan deze id moet worden gekoppeld. Al deze details worden aan uw npm-module toegevoegd wanneer deze wordt gepubliceerd.

De onderstaande commando's stellen de naam, het e-mailadres en de URL van de auteur van de npm-module in.

npm zet init.author.name "Guru99."

npm set init.author.email " Dit e-mailadres is beschermd tegen spambots. JavaScript moet ingeschakeld zijn om het te bekijken."

npm stelt init.author.url http://Guru99.com in

Stap 3) De volgende stap is om in te loggen op npm met de inloggegevens die in de laatste stap zijn verstrekt. Om in te loggen, moet u het onderstaande commando gebruiken

npm login 

Stap 4) Initialiseer uw pakket - De volgende stap is om het pakket te initialiseren om het bestand package.json te maken. Dit kan gedaan worden door het onderstaande commando te geven

npm init

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

Stap 5) Publiceer op GitHub - De volgende stap is om uw bronbestanden op GitHub te publiceren. Dit kan worden gedaan door de onderstaande opdrachten uit te voeren.

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

Stap 6) Publiceer uw module - De laatste stap is om uw module in het npm-register te publiceren. Dit doet u 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-toepassingen.

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

  1. Pakketten installeren in globale modus - Modules kunnen op globaal niveau worden geïnstalleerd, wat in feite betekent dat deze modules beschikbaar zouden 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 zorgt ervoor dat de modules op globaal niveau kunnen worden geïnstalleerd.

  2. Een lijst van alle globale pakketten die op een lokale computer zijn geïnstalleerd. Dit kan worden gedaan door de onderstaande opdracht uit te voeren in de opdrachtprompt

    npm lijst --global

    Hieronder ziet u de output die getoond zal worden als u eerder de "express module" op uw systeem geïnstalleerd heeft.

    Hier kunt u de verschillende modules zien die op de lokale computer zijn geïnstalleerd.

  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 met de naam underscore installeert met een specifieke versie van 1.7.0

    npm installeer [email protected]

  2. Een pakketversie bijwerken - Soms heeft u mogelijk een oudere versie van een pakket in een systeem en wilt u misschien updaten naar de nieuwste versie die op de markt beschikbaar is. Om dit te doen, kan men de opdracht npm update gebruiken. Het onderstaande voorbeeld laat zien hoe u het underscore-pakket bijwerkt naar de nieuwste versie

    npm update onderstrepingsteken

  3. Zoeken naar een bepaald pakket - Om te zoeken of een bepaalde versie al dan niet beschikbaar is op het lokale systeem, kunt u de zoekopdracht npm gebruiken. In het onderstaande voorbeeld wordt gecontroleerd of de express-module op de lokale computer is geïnstalleerd of niet.

    npm express zoeken

  4. Een pakket verwijderen - Hetzelfde waarin u een pakket kunt installeren, u kunt ook een pakket verwijderen. Het verwijderen van een pakket wordt gedaan met de de-installatieopdracht van npm. Het onderstaande voorbeeld laat zien hoe u de express-module kunt verwijderen

    npm uninstall express

Wat is het bestand package.json

Het "package.json" -bestand wordt gebruikt om de metagegevens over een bepaald project te bewaren . Deze informatie geeft de Node-pakketbeheerder de nodige informatie om te begrijpen hoe het project en zijn afhankelijkheden moeten worden afgehandeld.

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

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

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

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

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.

Overzicht

  • Een module in Node.js is een logische inkapseling van code in een enkele eenheid. Scheiding in modules maakt code beter beheersbaar en onderhoudbaar voor toekomstige doeleinden
  • Er zijn veel modules op de markt 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.
  • Men kan aangepaste NPM-modules maken, deze modules uitbreiden en deze modules ook publiceren.
  • De Node-pakketbeheerder heeft een complete set opdrachten om de npm-modules op het lokale systeem te beheren, zoals de installatie, de-installatie, zoeken, enz.
  • Het bestand package.json wordt gebruikt om de volledige metadata-informatie voor een npm-module te bewaren.