Knooppunt.JS (Node.JS)

Node.js is een open-source, platformonafhankelijke JavaScript-runtime die op servers wordt uitgevoerd. Sinds de release in 2009 is dit platform enorm populair geworden en speelt het tegenwoordig een zeer belangrijke rol op het gebied van webontwikkeling.
Voor het volledige artikel op Node.JS ...

Filter weergeven
Hostingfilters
A2 Themes & Host Me Filter

Operatie systeem

Schijfruimte

RAM-geheugen

Schijftype

CPU-kernen

Soort

Trustpilot Dream Host
Partituur - 9.7
Dream Host Logo
Dream Host

Droomgastheer

DreamObjects 40 GB
$0.95 /Maandelijks

Recensies 3778

29-coupons

Serverlocaties


Dream Host Servers in AshburnVerenigde Staten
Vergelijken
Trustpilot ICDSoft
Partituur - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Maandelijks

Recensies 233


Serverlocaties


ICDSoft Servers in SofiaBulgarije ICDSoft Servers in BostonVerenigde Staten ICDSoft Servers in Hong KongHong Kong
Vergelijken
Trustpilot ICDSoft
Partituur - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Maandelijks

Recensies 233


Serverlocaties


ICDSoft Servers in SofiaBulgarije ICDSoft Servers in BostonVerenigde Staten ICDSoft Servers in Hong KongHong Kong
Vergelijken
Partituur - 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /Maandelijks

50-coupons

Serverlocaties


A2hosting Servers in AmsterdamNederland A2hosting Servers in MichiganVerenigde Staten A2hosting Servers in SingaporeSingapore
Vergelijken
Trustpilot Keliweb
Partituur - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Maandelijks

Recensies 453


Serverlocaties


Keliweb Servers in MilanoItalië
Vergelijken
Trustpilot JustHostMe
Partituur - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Maandelijks

Recensies 72


Serverlocaties


JustHostMe Servers in United KingdomVerenigd Koningkrijk
Vergelijken
Trustpilot Dream VPS
Partituur - 8.6
Dream VPS Logo
Dream VPS

Droom VPS

STARTER
$3.75 /Maandelijks

Recensies 7


Serverlocaties


Dream VPS Servers in Hong KongHong Kong Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkVerenigde Staten Dream VPS Servers in LondonVerenigd Koningkrijk Dream VPS Servers in AmsterdamNederland Dream VPS Servers in FrankfurtDuitsland Dream VPS Servers in IsraelIsraël
Vergelijken
Trustpilot Reseller Cube
Partituur - 8
Reseller Cube Logo
Reseller Cube

Reseller Cube

Basic USA
$5 /Maandelijks

Recensies 4


Serverlocaties


Reseller Cube Servers in RaleighVerenigde Staten
Vergelijken
Trustpilot Univa Host
Partituur - 8
Univa Host Logo
Univa Host

Univa-gastheer

E-ECONOMY
$2.99 /Maandelijks

Recensies 3


Serverlocaties


Univa Host Servers in GermanyDuitsland Univa Host Servers in United StatesVerenigde Staten
Vergelijken
Trustpilot OperaVPS
Partituur - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Maandelijks

Recensies 3


Serverlocaties


OperaVPS Servers in United KingdomVerenigd Koningkrijk OperaVPS Servers in AustriaOostenrijk OperaVPS Servers in CanadaCanada OperaVPS Servers in DenmarkDenemarken OperaVPS Servers in FranceFrankrijk OperaVPS Servers in GermanyDuitsland OperaVPS Servers in ItalyItalië OperaVPS Servers in NetherlandsNederland OperaVPS Servers in RomaniaRoemenië OperaVPS Servers in United StatesVerenigde Staten
Vergelijken
Trustpilot L3Web Hosting
Partituur - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Web Hosting

START UP
$1.99 /Maandelijks

Recensies 2


Serverlocaties


L3Web Hosting Servers in IndiaIndia L3Web Hosting Servers in MunichDuitsland L3Web Hosting Servers in MiamiVerenigde Staten L3Web Hosting Servers in SingaporeSingapore L3Web Hosting Servers in United KingdomVerenigd Koningkrijk
Vergelijken
Trustpilot Idea Stack
Partituur - 7.4
Idea Stack Logo
Idea Stack

Ideeënstapel

LEVEL 1
$2 /Maandelijks

Recensies 2


Serverlocaties


Idea Stack Servers in SeattleVerenigde Staten
Vergelijken
Trustpilot Epic Host
Partituur - 7.4
Epic Host Logo
Epic Host

Epische gastheer

Cloud hosting
$2.37 /Maandelijks

Recensies 1


Serverlocaties


Epic Host Servers in New DelhiIndia Epic Host Servers in UnionVerenigde Staten
Vergelijken
Trustpilot itanets.co.uk
Partituur - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Maandelijks

Recensies 2

Vergelijken
Trustpilot Digital Ocean
Partituur - 3.8
Digital Ocean Logo
Digital Ocean

Digitale oceaan

$5 /mo
$5 /Maandelijks

Recensies 214

38-coupons

Serverlocaties


Digital Ocean Servers in IndiaIndia Digital Ocean Servers in New YorkVerenigde Staten Digital Ocean Servers in AmsterdamNederland Digital Ocean Servers in LondonVerenigd Koningkrijk Digital Ocean Servers in TorontoCanada Digital Ocean Servers in Frankfurt am MainDuitsland Digital Ocean Servers in SingaporeSingapore
Vergelijken
Partituur - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /Jaarlijks


Serverlocaties


HOST PRO KE Servers in GermanyDuitsland
Vergelijken
Partituur - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /Maandelijks

19-coupons

Serverlocaties


Accu WebHosting Servers in FranceFrankrijk Accu WebHosting Servers in DenverVerenigde Staten Accu WebHosting Servers in MumbaiIndia Accu WebHosting Servers in AmsterdamNederland Accu WebHosting Servers in Frankfurt am MainDuitsland Accu WebHosting Servers in SydneyAustralië Accu WebHosting Servers in LondonVerenigd Koningkrijk Accu WebHosting Servers in PolandPolen Accu WebHosting Servers in CanadaCanada Accu WebHosting Servers in SingaporeSingapore
Vergelijken
Partituur - 9
Be hostings Logo
Be hostings

Wees hostings

StarterSSL
$3.36 /Maandelijks


Serverlocaties


Be hostings Servers in BrusselsBelgie
Vergelijken
Partituur - 4.3
Gear Host Logo
Gear Host

Gear Host

CloudSite Hobby
$5 /Maandelijks


Serverlocaties


Gear Host Servers in DenverVerenigde Staten
Vergelijken
Partituur - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Maandelijks


Serverlocaties


Mikro VPS Servers in BudapestHongarije
Vergelijken
Partituur - 0
Simple Node Logo
Simple Node

Eenvoudig knooppunt

OpenVZ - 256MB
$3 /Maandelijks

Vergelijken

 

Node.js

 

 

Node.js is een open-source, platformonafhankelijke JavaScript-runtime die op servers wordt uitgevoerd. Sinds de release in 2009 is dit platform enorm populair geworden en speelt het tegenwoordig een zeer belangrijke rol op het gebied van webontwikkeling. Als we het aantal sterren dat een project op GitHub heeft verzameld beschouwen als een indicator van populariteit, dan is Node.js, dat meer dan 50.000 sterren heeft, een heel erg populair project.

 

Het Node.js-platform is gebouwd op de V8 JavaScript-engine van Google, die wordt gebruikt in de Google Chrome-browser. Dit platform wordt voornamelijk gebruikt om webservers te maken, maar de reikwijdte is hier niet toe beperkt.

 

Laten we eens kijken naar de belangrijkste functies van Node.js.

 

Snelheid

 

Een van de belangrijkste attracties van Node.js is snelheid. JavaScript-code die wordt uitgevoerd in Node.js kan twee keer zo snel zijn als code die is geschreven in gecompileerde talen zoals C of Java, en ordes van grootte sneller dan geïnterpreteerde talen zoals Python of Ruby. De reden hiervoor is de niet-blokkerende architectuur van het platform en de specifieke resultaten zijn afhankelijk van de gebruikte benchmarks, maar over het algemeen is Node.js een zeer snel platform.

 

Eenvoud

 

Het Node.js-platform is gemakkelijk te leren en te gebruiken. In feite is het ronduit heel eenvoudig, vooral in vergelijking met sommige andere serverplatforms.

 

JavaScript

 

JavaScript wordt uitgevoerd in de Node.js-omgeving. Dit betekent dat miljoenen front-end ontwikkelaars die JavaScript al in de browser gebruiken, zowel server-side als client-side code in dezelfde programmeertaal kunnen schrijven zonder een geheel nieuwe tool te hoeven leren om over te stappen op server-side ontwikkeling.

 

De browser en de server gebruiken dezelfde taalconcepten. Bovendien kan Node.js snel overschakelen naar nieuwe ECMAScript-standaarden wanneer deze op het platform worden geïmplementeerd.

 

Het is niet nodig om te wachten tot gebruikers hun browser hiervoor hebben vernieuwd, aangezien Node.js een server-side omgeving is die volledig onder controle is van de ontwikkelaar. Als gevolg hiervan komen nieuwe taalfuncties beschikbaar wanneer u een ondersteunende versie van Node.js. installeert.

 

V8-motor

 

De kern van Node.js, naast andere oplossingen, is de open-source V8 JavaScript-engine van Google, die wordt gebruikt in Google Chrome en andere browsers. Dit betekent dat Node.js profiteert van duizenden ingenieurs die de JavaScript Chrome-runtime ongelooflijk snel hebben gemaakt en blijven werken aan het verbeteren van V8.

 

Asynchronie

 

In traditionele programmeertalen (C, Java, Python, PHP) worden alle instructies standaard geblokkeerd, tenzij de ontwikkelaar er expliciet voor zorgt dat de code asynchroon wordt uitgevoerd. Als gevolg hiervan, als u bijvoorbeeld in een dergelijke omgeving een netwerkverzoek indient om een ​​JSON-code te downloaden, wordt de uitvoering van de stream waarvan het verzoek is gedaan, opgeschort totdat het antwoord is ontvangen en verwerkt.

 

JavaScript maakt het veel gemakkelijker om asynchrone en niet-blokkerende code te schrijven met behulp van een enkele thread, callbacks en een gebeurtenisgestuurde benadering van ontwikkeling. Elke keer dat we een zware operatie moeten uitvoeren, geven we een callback door aan het juiste mechanisme, dat onmiddellijk na voltooiing van deze operatie zal worden gebeld. Het resultaat is dat u niet hoeft te wachten op de resultaten van dergelijke bewerkingen om het programma te laten werken.

 

Een soortgelijk mechanisme is ontstaan ​​in browsers. We kunnen het ons niet veroorloven om bijvoorbeeld te wachten op eenAJAXverzoek om af te ronden zonder te kunnen reageren op gebruikersacties, zoals klikken op knoppen. Om het voor gebruikers gemakkelijk te maken om met webpagina's te werken, moet alles, zowel het downloaden van gegevens van het netwerk als het klikken op de verwerkingsknoppen, gelijktijdig en in realtime plaatsvinden.

 

Als je ooit een gebeurtenis-handler met knopklik hebt gemaakt, heb je al asynchrone programmeertechnieken gebruikt.

 

Asynchrone mechanismen zorgen ervoor dat een enkele Node.js-server tegelijkertijd duizenden verbindingen kan verwerken zonder de programmeur te belasten met threadbeheer en parallelle code-uitvoeringstaken. Dergelijke dingen zijn vaak een bron van fouten.

 

Node.js biedt de ontwikkelaar niet-blokkerende basis-I / O-mechanismen, en in het algemeen worden de bibliotheken die in het Node.js-framework worden gebruikt, geschreven met behulp van niet-blokkerende paradigma's.Dit maakt blokkeringsgedrag eerder uitzondering dan norm.

 

Wanneer Node.js een I / O-bewerking moet uitvoeren, zoals het laden van gegevens van het netwerk, toegang krijgen tot een database of het bestandssysteem, in plaats van de hoofdthread te blokkeren die wacht op de resultaten van een dergelijke bewerking, zal Node.js de uitvoering en ga door met het doen van andere dingen totdat de resultaten van deze operatie zijn ontvangen.

 

Bibliotheken

 

Met het gemak en gemak van het werken met een pakketbeheerder voor Node.js genaamd npm, bloeit het ecosysteem van Node.js. Er zijn nu meer dan een half miljoen open source-pakketten in het npm-register die elke Node.js-ontwikkelaar vrijelijk kan gebruiken.

 

Laten we, nadat we enkele van de belangrijkste functies van het Node.js-platform hebben bekeken, het in actie proberen. Laten we beginnen met de installatie.

 

 

Node.js

 

 

Node.js installeren

 

Node.js kan op verschillende manieren worden geïnstalleerd, die we zo dadelijk zullen behandelen. Dus de officiële installatiepakketten voor alle grote platforms zijn te vinden.

 

Er is nog een andere zeer handige manier om Node.js te installeren, namelijk door de pakketbeheerder te gebruiken die in het besturingssysteem wordt geleverd. De macOS-pakketbeheerder, de de facto standaard op dit gebied, wordt bijvoorbeeld Homebrew genoemd.

 

Als u er een op uw systeem heeft, kunt u Node.js installeren door deze opdracht op de opdrachtregel uit te voeren:

 

brew install node

 

Een lijst met pakketbeheerders voor andere besturingssystemen, waaronder Linux en Windows, is hier te vinden.

 

Een populaire versiebeheerder van Node.js is nvm. Met deze tool kunt u gemakkelijk schakelen tussen verschillende versies van Node.js, met zijn hulp kunt u bijvoorbeeld een nieuwe versie van Node.js installeren en uitproberen, en vervolgens, indien nodig, terugkeren naar de oude. Nvm is ook handig in een situatie waarin je wat code moet testen op een oude versie van Node.js.

 

Voor beginners om de officiële Node.js-installatieprogramma's te gebruiken. Voor macOS-gebruikers zou men aanraden om Node.js te installeren met Homebrew. Nu je Node.js hebt geïnstalleerd, is het tijd om "Hallo wereld" te schrijven.

 

Eerste Node.js-applicatie

 

Het meest voorkomende voorbeeld van een eerste Node.js-applicatie is een eenvoudige webserver. Hier is de code:

const http = vereisen ('http')

const hostnaam = '127.0.0.1'

const poort = 3000

const server = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ('Content-Type', 'text / plain')

res.end ('Hallo wereld \ n')

})

server.listen (poort, hostnaam, () = & gt; {

console.log (`Server draait op http: // $ {hostnaam}: $ {poort} /`)

})

 

Om deze code uit te voeren, slaat u deze op in een bestand server.js en voert u de volgende opdracht uit in de terminal:

 

knooppunt server.js

 

Om de server te controleren, opent u een browser en voert u in de adresbalk http://127.0.0.1:3000 in, dat wil zeggen het serveradres dat in de console wordt weergegeven nadat het succesvol is gestart. Als alles naar behoren werkt, zal de pagina "Hello World" weergeven.

 

Laten we naar dit voorbeeld kijken.

 

Merk allereerst op dat de code de opdracht bevat om de HTTP-module te verbinden.

 

Het Node.js-platform heeft een uitstekende standaardset van modules, waaronder goed ontwikkelde mechanismen om met het netwerk te werken.

De createServer () objectmethode http maakt een nieuwe HTTP-server aan en retourneert deze.

 

De server is geconfigureerd om te luisteren op een specifieke poort op een specifieke host. Als de server klaar is, wordt de bijbehorende callback gebeld, zodat we weten dat de server draait.

Wanneer de server een verzoek ontvangt, wordt een gebeurtenis geactiveerd die twee objecten levert. De eerste is het verzoek (req, het http.IncomingMessage-object), de tweede is het antwoord (res, het http.ServerResponse-object). Dit zijn de belangrijkste mechanismen voor het afhandelen van HTTP-verzoeken.

 

De eerste geeft ons informatie over het verzoek. In ons eenvoudige voorbeeld gebruiken we deze gegevens niet, maar, indien nodig, met behulp van het object, hebben we toegang tot de verzoekheaders en de gegevens die erin worden doorgegeven.

 

De tweede is nodig om een ​​antwoord op een verzoek te vormen en te verzenden.

 

In dat geval vormen we het antwoord op het verzoek als volgt. Eerst stellen we de eigenschapstatuscode in op een waarde van 200, wat een succesvolle bewerking aangeeft:

 

res.statusCode = 200

Vervolgens stellen we de titel Content-Type in:

res.setHeader ('Content-Type', 'text / plain')

Vervolgens voltooien we de voorbereiding van het antwoord door de inhoud ervan als argument toe te voegen aan de methode end ():

res.end ('Hallo wereld \ n')

 

We hebben al gezegd dat er een krachtig ecosysteem is ontstaan ​​rond het Node.js-platform. Laten we nu enkele populaire frameworks en helper-tools voor Node.js. bespreken.

 

Frameworks en Helper Tools voor Node.js

 

Node.js is een low-level platform. Om de ontwikkeling ervan te vereenvoudigen en het leven van programmeurs gemakkelijker te maken, is er een groot aantal bibliotheken gemaakt. Sommigen van hen zijn in de loop van de tijd erg populair geworden. Hier is een kleine lijst met bibliotheken waarvan ik denk dat ze goed zijn gedaan en het ontdekken waard zijn:

 

uitdrukken: Deze bibliotheek biedt de ontwikkelaar een uiterst eenvoudige maar krachtige tool voor het bouwen van webservers. De sleutel tot het succes van Express was een minimalistische benadering en een focus op basale server-side mechanismen zonder te proberen een visie op te leggen van "one-stop" serverarchitectuur.

 

Meteoor: Het is een krachtig full-stack framework dat een isomorfe benadering heeft om JavaScript-applicaties te ontwikkelen en code op zowel de client als de server gebruikt. Ooit was Meteor een zelfstandige tool die alles bevatte wat een ontwikkelaar nodig zou kunnen hebben. Het integreert nu ook met frontend-bibliotheken zoals React, Vue en Angular. Meteor kan, naast het ontwikkelen van gewone webapplicaties, ook worden gebruikt in mobiele ontwikkeling.

 

Koa: Dit webframework is gebouwd door hetzelfde team achter Express. Voortbouwend op jarenlange ervaring met Express, werd het ontwikkeld met de nadruk op eenvoud en compactheid. Dit project kwam tot stand als een oplossing voor het probleem van het maken van grote veranderingen in Express die niet compatibel zijn met andere raamwerkmechanismen die de gemeenschap zouden kunnen splitsen.

 

Next.js: Dit framework is ontworpen om server-side rendering van React-applicaties te organiseren.

 

Micro: Het is een zeer lichtgewicht bibliotheek voor het bouwen van asynchrone HTTP-microservices.

Socket.io. Het is een bibliotheek voor het ontwikkelen van real-time netwerktoepassingen.

 

In het Node.js-ecosysteem kunt u zelfs voor bijna elke taak een helperbibliotheek vinden. Zoals u zich kunt voorstellen, kost het veel tijd om zo'n ecosysteem op te bouwen. Het Node.js-platform verscheen in 2009. Tijdens zijn bestaan ​​zijn er veel dingen gebeurd die bekend zouden moeten zijn bij een programmeur die dit platform wil leren kennen.

 

Een korte geschiedenis van Node.js

 

Node.js bestaat dit jaar 9 jaar. Dit is natuurlijk niet zozeer als je deze leeftijd vergelijkt met de leeftijd van JavaScript, die al 23 jaar oud is, of met de 25-jarige leeftijd van het web zoals wij die kennen als je meetelt vanaf de komst van het mozaïek browser.

 

9 jaar is een korte tijd voor technologie, maar nu lijkt het alsof het Node.js-platform altijd heeft bestaan.

 

Met Node.js uit vroege versies van het platform toen het nog maar 2 jaar oud was. Zelfs dan, ondanks het feit dat er niet zo veel informatie was over Node.js, kon je al denken dat Node.js erg serieus is.

 

Laten we het nu hebben over de technologieën achter Node.js en even kijken naar hetbelangrijkste ontwikkelingen met betrekking tot dit platform.

 

JavaScript is dus een programmeertaal die in Netscape is gemaakt als scripttaal voor het manipuleren van webpagina's in de Netscape Navigator-browser.

Een deel van de activiteiten van Netscape was de verkoop van webservers, waaronder een omgeving genaamd Netscape LiveWire. Hiermee kunt u dynamische webpagina's maken met JavaScript aan de serverzijde.

 

het idee om JS te gebruiken voor server-side ontwikkeling is veel ouder dan Node.js. Dit idee is bijna net zo oud als JavaScript zelf, maar op het moment in kwestie was server-side JS niet populair.

 

Een van de belangrijkste factoren die het Node.js-platform zo wijdverspreid en populair maakten, is toen het voor het eerst verscheen. Dus een paar jaar eerder werd JavaScript als een serieuze taal beschouwd. Dit gebeurde dankzij Web 2.0-applicaties zoals Google Maps of Gmail, die de wereld de kracht van moderne webtechnologieën lieten zien.

 

Dankzij de concurrerende oorlog tussen browsers, die tot op de dag van vandaag voortduurt, zijn de prestaties van JavaScript-engines aanzienlijk verbeterd. De ontwikkelingsteams achter de grote browsers werken elke dag aan het verbeteren van de prestaties van hun oplossingen, wat een gunstig effect heeft op JavaScript in het algemeen.

 

Een van die motoren is de reeds genoemde V8, die wordt gebruikt in de Chrome-browser en wordt gebruikt in Node.js. Het is een van de resultaten van browserontwikkelaars die streven naar hoogwaardige JavaScript-code.

 

Natuurlijk is de populariteit van Node.js niet alleen gebaseerd op een gelukkig toeval en op het feit dat het platform op het juiste moment werd geboren. Ze liet de wereld kennismaken met een innovatieve benadering van server-side JavaScript-ontwikkeling. Laten we eens kijken naar de belangrijkste mijlpalen in de geschiedenis van Node.js.

 

2009


  • De opkomst van Node.js

  • De eerste npm-variant maken.

 

2010

  • Het uiterlijk van Express.

  • De opkomst van Socket.io.

 

2011


  • Npm 1.0-release.

  • Grote bedrijven zoals LinkedIn en Uber zijn begonnen met het gebruik van Node.js.

 

2012


  • De snelle stijging in populariteit van Node.js.

 

2013


  • De opkomst van Ghost, het eerste grote platform voor publicaties met Node.js.

  • Koa vrijlating.

 

2014


  • Dit jaar hebben er dramatische gebeurtenissen plaatsgevonden. Het IO.js-project verscheen, een vork van Node.js, met als doel onder andere ES6-ondersteuning te introduceren en de ontwikkeling van het platform te versnellen.

 

2015


  • De Node.js Foundation wordt opgericht.

  • IO.js en Node.js. samenvoegen

  • In npm wordt het mogelijk om met privémodules te werken.

  • Opbrengst Node.js 4 (er moet worden opgemerkt dat versies 1, 2 en 3 van het platform dat niet waren).

 

2016


  • Pakketincident op linkerkussen.

  • De opkomst van garen.

  • Node.js 6-release.

 

2017


  • Npm begint meer aandacht te besteden aan beveiliging.

  • Node.js 8-release

  • De opkomst van ondersteuning voor HTTP / 2.

  • V8 wordt officieel erkend als een JS-engine die niet alleen voor Chrome is ontworpen, maar ook voor Node.

  • Elke week zijn er 3 miljard npm-downloads.

 

2018


  • Node.js 10-release.

  • Ondersteuning voor ES-modules.

  • Experimentele mjs-ondersteuning.