Als je ooit van Node.js hebt gehoord, weet je misschien dat dit een van de meest prominente en krachtige frameworks van JavaScript is. Sinds de release heeft het zijn wurggreep op de IT-markt behouden. Zelfs met de introductie van nieuw en levendig Leuk vinden , , Meteor etc., de populariteit van Node.js lijkt nooit op te houden. Afvragen waarom? Welnu, met behulp van deze Node.js-zelfstudie zal ik u er een volledig inzicht in geven. Dus maak je klaar om verliefd te worden op Node.js.
In deze Node.js-zelfstudie zal ik de onderstaande onderwerpen bespreken:
- Wat is Node.js?
- NPM (Node Package Manager)
- Node.js-modules
- JSON-bestand
- Node.js Basics
- Bestandssysteem
- Evenementen
- HTTP-module
- Express.js
- Node.js Tutorial Stap voor stap Applicatieontwikkeling met Express.js
Wat is Node.js?
Node.js is een krachtig framework ontwikkeld op De V8 JavaScript-engine van Chrome die het JavaScript rechtstreeks compileert in de oorspronkelijke machinecode. Het is een lichtgewicht raamwerk dat wordt gebruikt voor het maken van webtoepassingen aan de serverzijde en breidt de JavaScript-API uit om de gebruikelijke serverfunctionaliteit te bieden. Het wordt over het algemeen gebruikt voor grootschalige applicatie-ontwikkeling, vooral voor videostreaming-sites, single page-applicaties en andere webapplicaties. Node.js maakt gebruik van een gebeurtenisgestuurd, niet-blokkerend I / O-model, waardoor het de juiste keuze is voor de data-intensieve real-time applicaties.
Net als alle andere programmeertalen maakt node.js gebruik van pakketten en modules. Dit zijn de bibliotheken die verschillende functies bevatten en vanuit npm (node package manager) in onze code worden geïmporteerd en in de programma's worden gebruikt. Enkele van de belangrijkste kenmerken die Node.js definiëren, worden hieronder vermeld:
Kenmerken van Node.js
- Open source
Node.js is een open source framework MIT-licentie die wordt ondersteund door een enorme community. De gemeenschap is vrijwel actief en heeft bijgedragen aan het toevoegen van nieuwe mogelijkheden aan Node.js-applicaties. - Simpel en snel
Omdat Node.js is gebouwd op de V8 JavaScript-engine van Google Chrome, zijn de bibliotheken in staat om code snel uit te voeren. - Asynchroon
Alle bibliotheken van Node.js zijn asynchroon, wat betekent dat de op Node.js gebaseerde servers nooit wachten op een API om het antwoord terug te sturen en door te gaan naar de volgende API. - Hoge schaalbaarheid
Vanwege het gebeurtenismechanisme is Node.js zeer schaalbaar en helpt het de server bij een niet-blokkerende reactie. - Met één schroefdraad
Met behulp van event-looping kan Node.js het single-threaded model volgen. Hierdoor kan een enkel programma meerdere verzoeken afhandelen. - Geen buffering
Een van de belangrijkste functionaliteiten van Node.js-applicaties is dat het nooit gegevens buffert. - Cross-platform
Node.js kan eenvoudig worden gebouwd en geïmplementeerd op verschillende platforms zoals Windows, MAC en Linux.
Laten we nu verder gaan en kijken hoe we de daadwerkelijke code in de browser kunnen implementeren. Maar daarvoor moet u downloaden en installeren op uw systemen. U kunt mijn andere artikel verwijzen om het volledige te kennen Node.js installatieproces .
Laten we nu dus verder gaan in deze Node.js-zelfstudie, waar ik het zal hebben over het belangrijkste onderdeel van Node.js, namelijk npm.
NPM (Node Package Manager)
NPM staat voor Node Package Manager, wat, zoals de naam suggereert, een pakketbeheerder is voor Node.js-pakketten / -modules. Vanaf Node-versie 0.6.0. en daarna is npm standaard toegevoegd in de knooppuntinstallatie. Het bespaart u het gedoe om npm expliciet te installeren.
NPM helpt in principe op twee manieren:
servicenow tutorial voor beginners pdf
- Biedt en host online opslagplaatsen voor node.js-pakketten / -modules die gemakkelijk kunnen worden gedownload en gebruikt in onze projecten. Je vindt ze hier: npmjs.com
- Biedt het opdrachtregelhulpprogramma om verschillende Node.js-pakketten te installeren, Node.js-versies en afhankelijkheden van de pakketten te beheren.
Maar nu moet u zich afvragen wat deze modules precies zijn en hoe ze ons helpen bij het bouwen van de Node.js-toepassingen. Welnu, in het volgende gedeelte van deze Node.js-zelfstudie zal ik je een volledig inzicht geven in Node.js-modules.
Node.js-modules
De modules in Node.js vertegenwoordigen verschillende functionaliteiten die zijn gebundeld in enkele of meerdere JS-bestanden. Deze modules hebben een unieke context, waardoor ze nooit de reikwijdte van andere modules verstoren of vervuilen.
Deze modules maken herbruikbaarheid van de code mogelijk en vergroten het gebruiksgemak. Node.js biedt in principe drie soorten modules:
- Kernmodules
- Lokale modules
- Modules van derden
Kernmodule
Omdat Node.js een zeer lichtgewicht framework, bundelen de kernmodules de absolute minimumfunctionaliteiten. Deze modules worden over het algemeen geladen wanneer het Node-proces met de uitvoering begint. Het enige dat u hoeft te doen, is deze kernmodules importeren om ze in uw code te gebruiken.
Hieronder heb ik een aantal van de belangrijkste Core modules op een rijtje gezet.
Kernmodule | Omschrijving |
http | Bevat klassen, methoden en gebeurtenissen die nodig zijn om een Node.js HTTP-server te maken |
url | Bevat methoden voor URL-resolutie en parsering in Node |
querystring | Bevat methoden om met een queryreeks van Node |
pad | Bevat methoden om met bestandspaden om te gaan |
fs | Bevat klassen, methoden en gebeurtenissen om te werken met bestands-I / O |
Nuttig | Bevat hulpprogramma-functies die handig kunnen zijn voor programmeurs |
U kunt uw kernmodule laden met de onderstaande code:
var module = vereisen ('module_name')
Laten we nu eens kijken, wat zijn ‘lokale modules’.
Lokale modules
De lokale modules van Node.js zijn aangepaste modules die lokaal door de gebruiker / ontwikkelaar in de applicatie worden gemaakt. Deze modules kunnen verschillende functionaliteiten bevatten die zijn gebundeld in verschillende bestanden en mappen die gemakkelijk kunnen worden gedistribueerd in de Node.js-community met behulp van NPM.
Deze modules worden op dezelfde manier geladen als kernmodules. Laat u zien hoe u dit moet doen aan de hand van een eenvoudig voorbeeld.
Maak uw aangepaste / lokale module.js-bestand
var detail = {naam: functie (naam) {console.log ('Naam:' + naam)}, domein: functie (domein) {console.log ('Domein:' + domein)}} module.exports = detail
Voeg uw modulebestand toe aan uw hoofdtoepassingsbestand.
var myLogModule = vereisen ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Onderwijs')
Nu kunt u deze bestanden uitvoeren met de onderstaande opdracht:
knooppunt application.js
Ik zal u nu laten zien wat externe modules zijn.
Externe modules
U kunt de externe of 3rdpartymodules alleen door ze te downloaden via NPM. Deze modules zijn over het algemeen ontwikkeld door andere ontwikkelaars en zijn gratis te gebruiken. Enkele van de beste externe modules zijn express, reageren, slikken, mangoest, mokka enz.
Globaal laden van modules van derden:
npm install --g
Voeg uw modulebestand toe aan uw hoofdtoepassingsbestand:
npm install --save
JSON-bestand
De package.json-bestand in Node.js is het hart van de hele applicatie. Het is in feite het manifestbestand dat de metadata van het project bevat. Het begrijpen van en werken met dit bestand wordt dus erg belangrijk voor een succesvolle Node-projectontwikkeling.
Het package.json-bestand bestaat doorgaans uit de metadata van de applicatie, die verder is onderverdeeld in twee categorieën:
- Eigenschappen van metagegevens identificeren: Dit bestaat uit eigenschappen zoals de projectnaam, huidige moduleversie, licentie, auteur van het project, projectbeschrijving etc.
- Rechtstreeks naar bestand schrijven: U kunt de benodigde informatie rechtstreeks naar het bestand package.json schrijven en deze opnemen in uw project.
U bent inmiddels vertrouwd met de verschillende componenten van de Node JS-applicatie. In de volgende sectie van deze Node.js-zelfstudie zal ik enkele basisprincipes van Node Js delen, zodat we kunnen beginnen met de praktijk.
Node.js Basics
Omdat Node.js een JavaScript-framework is, gebruikt het de JavaScript-syntaxis. Als u JavaScript in detail wilt leren, kunt u hiernaar verwijzen . Voor nu zal ik je opfrissen met enkele basisprincipes van Node.js, zoals:
Gegevenstypen
Net als elke andere programmeertaal heeft Node.js verschillende datatypes, die verder zijn onderverdeeld in primitieve en niet-primitieve datatypes.
Primitieve gegevenstypen zijn:
- Draad
- Aantal
- Boolean
- Nul
- Ongedefinieerd
Niet-primitieve gegevenstypen zijn:
- Voorwerp
- Datum
- Array
Variabelen
Variabelen zijn entiteiten die waarden bevatten die in de loop van een programma kunnen variëren. Om een variabele in Node.js te maken, moet u gebruik maken van een gereserveerd trefwoord var. U hoeft geen datatype toe te wijzen, aangezien de compiler dit automatisch kiest.
Syntaxis:
var varName = waarde
Operatoren
Node.js ondersteunt de onderstaande operators:
Type operator | Operatoren |
Rekenkundig | +, -, /, *,%, ++, - |
Toewijzing | =, + =, - =, * =, / =,% = |
Voorwaardelijk | =? |
Vergelijking | ==, === ,! = ,! ==,>,> =,<, <=, |
Logisch | &&, || ,! |
Bitsgewijs | &, |, ^, ~,<>, >>> |
Functies
Functies in Node.js is een codeblok met een naam en is geschreven om een bepaalde taak uit te voeren. U moet de trefwoordfunctie gebruiken om het te maken. Een functie is doorgaans een proces in twee stappen. De eerste is het definiëren van de functie en de tweede is het aanroepen ervan. Hieronder staat de syntaxis voor het maken en aanroepen van een functie:
Voorbeeld:
// Een functie definiëren functie display_Name (voornaam, achternaam) {alert ('Hallo' + voornaam + '' + achternaam)} // De functie display_Name ('Park', 'Jimin') aanroepen
Voorwerpen
Een object is een niet-primitief gegevenstype dat meerdere waarden kan bevatten in termen van eigenschappen en methoden. Node.js-objecten zijn zelfstandige entiteiten omdat er geen concept van klasse is. U kunt op twee manieren een object maken:
- Object letterlijk gebruiken
- Met behulp van Object constructor
Voorbeeld:
// object met eigenschappen en methode var medewerker = {// eigenschappen voornaam: 'Minho', achternaam: 'Choi', leeftijd: 35, salaris: 50000, // methode getFullName: functie () {retourneer this.firstName + '' + this.lastName}}
Bestandssysteem
Om toegang te krijgen tot het fysieke bestandssysteem, maakt Node.js gebruik van de fs module die in feite zorgt voor alle asynchrone en synchrone bestands-I / O-bewerkingen. Deze module wordt geïmporteerd met de onderstaande opdracht:
var fs = vereisen ('fs')
Enkele van de algemene toepassingen voor de bestandssysteemmodules zijn:
- Lees bestanden
- fs.readFile ()
var http = vereisen ('http') var fs = vereisen ('fs') http.createServer (functie (req, res) {fs.readFile ('script.txt', functie (err, data) {res.writeHead ( 200, {'Content-Type': 'text / html'}) res.write (data) res.end ()})}). Listen (8080)
- Maak bestanden
- appendFile ()
- Open()
- writeFile ()
- Update bestanden
- fs.appendFile ()
- fs.writeFile ()
- Verwijder bestanden
- fs.unlink ()
- Hernoem bestanden
- fs.rename ()
Met deze opdrachten kunt u dus vrijwel alle vereiste bewerkingen op uw bestanden uitvoeren. Laten we nu verder gaan met deze Node.js-zelfstudie en kijken wat gebeurtenissen zijn en hoe ze worden afgehandeld in Node.js.
Evenementen
Zoals ik al heb gezegd, zijn Node.js-toepassingen single threaded en gebeurtenisgestuurd. Node.js ondersteunt gelijktijdigheid omdat het gebeurtenisgestuurd is, en maakt dus gebruik van concepten zoals gebeurtenissen en callbacks. De aanroepen van de async-functie helpen Node.js bij het handhaven van gelijktijdigheid in de hele applicatie.
Kortom, in een Node.js-toepassing is er een hoofdlus die wacht en luistert naar gebeurtenissen, en zodra een gebeurtenis is voltooid, start deze onmiddellijk een callback-functie.
Onderstaand diagram geeft weer hoe de gebeurtenissen worden aangestuurd in Node.js.
Een ding dat u hier moet opmerken, is dat, hoewel gebeurtenissen lijken op callback-functies, het verschil ligt in hun functionaliteiten. Wanneer een asynchrone functie retourneert, worden de callbacks van de resultaten aangeroepen, aan de andere kant werkt de gebeurtenisafhandeling volledig op het waarnemerpatroon. En in Node.js worden methoden die naar de gebeurtenissen luisteren de waarnemers genoemd. Op het moment dat een gebeurtenis wordt geactiveerd, wordt de luisteraarfunctie automatisch uitgevoerd. Gebeurtenismodules en de klasse EventEmitter bieden meerdere ingebouwde gebeurtenissen die worden gebruikt om gebeurtenissen aan gebeurtenislisteners te binden. Hieronder heb ik de syntaxis daarvoor opgeschreven.
Gebeurtenis aan een gebeurtenislistener binden
wat is functie-overbelasting in c ++
// Importeer gebeurtenissen module var my_Events = vereist ('events') // Maak een eventEmitter object var my_EveEmitter = new my_Events.EventEmitter ()
Event Handler aan een evenement binden
// Binding event en event handler my_EveEmitter.on ('eventName', eventHandler)
Een evenement afvuren
// Vuur een evenement my_EveEmitter.emit ('eventName')
Laten we nu proberen de dingen te implementeren die ik heb besproken in deze Node.js-gebeurtenissectie.De onderstaande code toont een eenvoudige weergave van de uitvoering van gebeurtenissen in Node.js.
var emitter = vereisen ('events'). EventEmitter function iterateProcessor (num) {var emt = nieuwe emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Verwerkingsherhaling:' + i) emt.emit ('AfterProcess', i)}}, 5000) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( info) {console.log ('Het proces starten voor' + info)}) it.on ('AfterProcess', functie (info) {console.log ('Verwerking voltooien voor' + info)
In de volgende sectie van deze Node.js Tutorial, zal ik je inzichten geven in een van de belangrijkste modules van Node.js, de HTTP-module.
verschil tussen java en klasse
HTTP-module
Over het algemeen wordt Node.js gebruikt voor het ontwikkelen van servertoepassingen. Maar met behulp van de module kunt u eenvoudig webservers maken die kunnen reageren op de verzoeken van de klant. Het wordt dus ook verwezen naar de webmodule en biedt modules zoals HTTP en verzoek die Node.js vergemakkelijken bij het verwerken van de serververzoeken.
U kunt deze module eenvoudig in uw Node.js-toepassing opnemen door de onderstaande code te schrijven:
var http = vereisen ('http')
Hieronder heb ik een code geschreven, die laat zien hoe een webserver wordt ontwikkeld in Node.js.
// aanroepen van http bibliotheek var http = vereisen ('http') var url = vereisen ('url') // server aanmaken var server = http.createServer (functie (req, res) {// inhoud header res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.month // stuur string naar antwoord res.end (txt)}) // 8082 toewijzen als luisterpoort server.listen (8082)
In het volgende gedeelte van deze Node.js-zelfstudie zal ik het hebben over Express.js, dat veel wordt gebruikt voor de ontwikkeling van webtoepassingen aan de serverzijde.
Express.js
Express.js is een framework dat bovenop Node.js is gebouwd en dat het beheer van de gegevensstroom tussen servers en routes in de server-side applicaties vergemakkelijkt. Het is een lichtgewicht en flexibel framework dat een breed scala aan functies biedt die nodig zijn voor het web en voor de ontwikkeling van mobiele applicaties.
Express.js is ontwikkeld op de middleware-module van Node.js genaamd aansluiten . De connect module maakt verder gebruik van http module om te communiceren met Node.js. Dus als u werkt met een van de op connect gebaseerde middleware-modules, dan kunt u gemakkelijk integreren met Express.js.
Niet alleen dit, enkele van de belangrijkste voordelen van Express.js zijn:
- Maakt de ontwikkeling van webapplicaties sneller
- Helpt bij het bouwen van mobiele applicaties en webapplicaties van single-page, multi-page en hybride types
- Express biedt twee templating-engines, namelijk Jade en EJS
- Express volgt de Model-View-Controller (MVC) -architectuur
- Maakt integratie met databases zoals MongoDB, Redis, MySQL
- Definieert een foutafhandeling van middleware
- Vereenvoudigt configuratie en aanpassing eenvoudig voor de applicatie.
Met al deze functies neemt Express de verantwoordelijkheid voor het backend-gedeelte in de MEAN-stack. Mean Stack is de open-source JavaScript-softwarestack die wordt gebruikt voor het bouwen van dynamische websites en webapplicaties. Hier, GEMEEN betekent M. ongoDB, IS xpress.js, NAAR ngularJS en N ode.js.
Laten we nu een eenvoudig voorbeeld bekijken om te begrijpen hoe Express.js werkt met Node.js om ons werk te vergemakkelijken. Maar voordat u met Express.js gaat werken, moet u het in uw systeem installeren.
Om Express.js wereldwijd te installeren, kunt u het onderstaande commando gebruiken:
npm install -g express
Of, als u het lokaal in uw projectmap wilt installeren, moet u de onderstaande opdracht uitvoeren:
npm install express --save
Aangezien we klaar zijn met alle voorbereidingen, gaan we nu direct naar de praktische implementatie. Hier laat ik een eenvoudige gebruikersauthenticatietoepassing zien met Node.js en Express.js.
Node.js Tutorial Stap voor stap Applicatieontwikkeling met Express.js
Hiervoor hebben we onderstaande bestanden nodig:
- package.json
- script.js
- keer bekeken
- index.jade
- login.jade
- secure.jade
- unauthorized.jade
- welkom.jade
- lib
- routes.js
Dus laten we beginnen met package.json .
{'author': 'Edureka', 'name': 'Express_Demo', 'description': 'Express met Node.js', 'versie': '0.0.0', 'scripts': {'start': 'node script.js '},' engines ': {' node ':' ~ 0.4.12 '},' afhankelijkheden ': {' connect-flash ':' ^ 0.1.1 ',' cookie-parser ':' ^ 1.4 .3 ',' express ':' ^ 3.21.2 ',' jade ':' ^ 0.20.3 ',' req-flash ':' 0.0.3 '},' devDependencies ': {}}
Vervolgens moet u het script.js .
var express = vereisen ('express') var http = vereisen ('http') var port = 8999 var app = express () const flash = vereisen ('connect-flash') var cookieParser = vereisen ('cookie-parser') var server = http.createServer (app) functie checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // niet serveren / beveiligen voor degenen die niet zijn ingelogd if (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('unauthorized', {status: 403}) return} next ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({geheim: 'voorbeeld'})) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('view engine', 'jade') app.set ('view options', {layout: false}) vereist ('./ lib / routes.js') (app) app.listen (poort) console .log ('Knooppunt luistert op poort% s', poort)
Maak nu een map met de naam view, waaronder u de jade-bestanden toevoegt die verantwoordelijk zijn voor verschillende paginaweergaven. Het eerste weergavebestand dat u moet maken, is index.jade .
!!! 5 html (lang = 'en') head title Gebruikersauthenticatie Voorbeeld body h1 center Authenticatiedemo met Express h3 Navigeer naar h4 ul li: a (href = '/ secure') Beveiligde inhoud li: a (href = '/ welcome') Welkomstpagina li: a (href = '/ logout') Logout
Maak nu het login.jade het dossier.
!!! 5 html (lang = 'en') head title Express authenticatie voorbeeld body h1 center Aanmelden bij dit Express authenticatie voorbeeld center p Gebruik gebruiker voor de gebruikersnaam en voorbij gaan aan voor het wachtwoord. form (method = 'post') p label (for = 'gebruikersnaam') E-mailadres invoer (type = 'text', name = 'gebruikersnaam', class = 'form-control', id = 'exampleInputPassword1', placeholder = ' Email ', style =' width: 400px ') p center label (for =' password ') Wachtwoordinvoer (type =' password ', name =' password ', class =' form-control ', id =' exampleInputPassword1 ', placeholder = 'Wachtwoord', style = 'width: 400px') p center Verzenden - elk bericht in flash h4 (style = 'color: red') # {message}
De volgende stap is om het welkom.jade .
!!! 5 html (lang = 'en') head title Gebruikersauthenticatie Voorbeeld body h1 center Welkom bij de Edureka Tutorial!
Maak vervolgens het secure.jade het dossier.
!!! 5 html (lang = 'en') head title Express Authentication Voorbeeld body h1 center Hallo, veilige gebruiker. p Navigeer naar ul li: a (href = '/ secure') Beveiligde inhoud li: a (href = '/ welcome') Welkomstpagina li: a (href = '/ logout') Uitloggen
Maak nu het unauthorized.jade het dossier.
!!! 5 html (lang = 'en') head title Gebruikersauthenticatie Voorbeeld body h1 center Niet geautoriseerd p U bent niet geautoriseerd om deze pagina te bekijken. p Alsjeblieft ' doorgaan
Nu moet u een map maken en deze een naam geven lib . Maak nu een route.js bestand dat alle pagina's in kaart brengt.
var util = vereisen ('util') module.exports = functie (app) {app.get ('/', functie (req, res, volgende) {res.render ('index')}) app.get (' / welcome ', function (req, res, next) {res.render (' welcome ')}) app.get (' / secure ', function (req, res, next) {res.render (' secure ')} ) app.get ('/ login', function (req, res, next) {res.render ('login', {flash: req.flash ()})}) app.post ('/ login', function ( req, res, next) {// je zou hier graag een database-look-up of iets meer schaalbaars willen doen als (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} anders {req.flash ('error', 'Gebruikersnaam en wachtwoord zijn onjuist') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {delete req.session.authenticated res.redirect ('/')})}
Als u deze code nu zelf wilt uitvoeren, kunt u deze hier downloaden: Node.js Tutorial PDF .
Hiermee komen we aan het einde van deze Node.js Tutorial. Ik hoop dat ik de concepten van Node.js vanaf de grond af heb kunnen uitleggen.
Als je deze “Node.js Tutorial ' relevant, bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld.
Heeft u een vraag voor ons? Vermeld het in het commentaargedeelte van deze Node.js-zelfstudie en we nemen contact met u op.