Node.JS

Node.js er en open source JavaScript-runtime på tværs af platforme, der kører på servere. Siden udgivelsen i 2009 er denne platform blevet ekstremt populær og spiller en meget vigtig rolle inden for webudvikling i disse dage.
For den fulde artikel på Node.JS ...

Vis filter
Hosting filtre
Host Me Host Filter

Operationssystem

Diskplads

RAM-hukommelse

Disk type

CPU-kerner

Sortere

Score - 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /Månedlige

50 Kuponer

Serverplaceringer


A2hosting Servers in AmsterdamHolland A2hosting Servers in MichiganForenede Stater A2hosting Servers in SingaporeSingapore
Sammenligne
Score - 5.2
Dream Host Logo
Dream Host

Drømme vært

DreamObjects 40 GB
$0.95 /Månedlige

29 Kuponer

Serverplaceringer


Dream Host Servers in AshburnForenede Stater
Sammenligne
Stol på pilot ICDSoft
Score - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Månedlige

Anmeldelser 233


Serverplaceringer


ICDSoft Servers in SofiaBulgarien ICDSoft Servers in BostonForenede Stater ICDSoft Servers in Hong KongHong Kong
Sammenligne
Stol på pilot ICDSoft
Score - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Månedlige

Anmeldelser 233


Serverplaceringer


ICDSoft Servers in SofiaBulgarien ICDSoft Servers in BostonForenede Stater ICDSoft Servers in Hong KongHong Kong
Sammenligne
Stol på pilot Keliweb
Score - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Månedlige

Anmeldelser 453


Serverplaceringer


Keliweb Servers in MilanoItalien
Sammenligne
Stol på pilot JustHostMe
Score - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Månedlige

Anmeldelser 72


Serverplaceringer


JustHostMe Servers in United KingdomDet Forenede Kongerige
Sammenligne
Stol på pilot Dream VPS
Score - 8.6
Dream VPS Logo
Dream VPS

Drøm VPS

STARTER
$3.75 /Månedlige

Anmeldelser 7


Serverplaceringer


Dream VPS Servers in Hong KongHong Kong Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkForenede Stater Dream VPS Servers in LondonDet Forenede Kongerige Dream VPS Servers in AmsterdamHolland Dream VPS Servers in FrankfurtTyskland Dream VPS Servers in IsraelIsrael
Sammenligne
Stol på pilot Reseller Cube
Score - 8
Reseller Cube Logo
Reseller Cube

Forhandlerterning

Basic USA
$5 /Månedlige

Anmeldelser 4


Serverplaceringer


Reseller Cube Servers in RaleighForenede Stater
Sammenligne
Stol på pilot Univa Host
Score - 8
Univa Host Logo
Univa Host

Univa vært

E-ECONOMY
$2.99 /Månedlige

Anmeldelser 3


Serverplaceringer


Univa Host Servers in GermanyTyskland Univa Host Servers in United StatesForenede Stater
Sammenligne
Stol på pilot OperaVPS
Score - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Månedlige

Anmeldelser 3


Serverplaceringer


OperaVPS Servers in United KingdomDet Forenede Kongerige OperaVPS Servers in AustriaØstrig OperaVPS Servers in CanadaCanada OperaVPS Servers in DenmarkDanmark OperaVPS Servers in FranceFrankrig OperaVPS Servers in GermanyTyskland OperaVPS Servers in ItalyItalien OperaVPS Servers in NetherlandsHolland OperaVPS Servers in RomaniaRumænien OperaVPS Servers in United StatesForenede Stater
Sammenligne
Stol på pilot L3Web Hosting
Score - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Web Hosting

START UP
$1.99 /Månedlige

Anmeldelser 2


Serverplaceringer


L3Web Hosting Servers in IndiaIndien L3Web Hosting Servers in MunichTyskland L3Web Hosting Servers in MiamiForenede Stater L3Web Hosting Servers in SingaporeSingapore L3Web Hosting Servers in United KingdomDet Forenede Kongerige
Sammenligne
Stol på pilot Idea Stack
Score - 7.4
Idea Stack Logo
Idea Stack

Idéstak

LEVEL 1
$2 /Månedlige

Anmeldelser 2


Serverplaceringer


Idea Stack Servers in SeattleForenede Stater
Sammenligne
Stol på pilot Epic Host
Score - 7.4
Epic Host Logo
Epic Host

Episk vært

Cloud hosting
$2.37 /Månedlige

Anmeldelser 1


Serverplaceringer


Epic Host Servers in New DelhiIndien Epic Host Servers in UnionForenede Stater
Sammenligne
Stol på pilot itanets.co.uk
Score - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Månedlige

Anmeldelser 2

Sammenligne
Stol på pilot Digital Ocean
Score - 3.8
Digital Ocean Logo
Digital Ocean

Digital Ocean

$5 /mo
$5 /Månedlige

Anmeldelser 214

38 Kuponer

Serverplaceringer


Digital Ocean Servers in IndiaIndien Digital Ocean Servers in New YorkForenede Stater Digital Ocean Servers in AmsterdamHolland Digital Ocean Servers in LondonDet Forenede Kongerige Digital Ocean Servers in TorontoCanada Digital Ocean Servers in Frankfurt am MainTyskland Digital Ocean Servers in SingaporeSingapore
Sammenligne
Score - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /Årligt


Serverplaceringer


HOST PRO KE Servers in GermanyTyskland
Sammenligne
Score - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /Månedlige

19 Kuponer

Serverplaceringer


Accu WebHosting Servers in FranceFrankrig Accu WebHosting Servers in DenverForenede Stater Accu WebHosting Servers in MumbaiIndien Accu WebHosting Servers in AmsterdamHolland Accu WebHosting Servers in Frankfurt am MainTyskland Accu WebHosting Servers in SydneyAustralien Accu WebHosting Servers in LondonDet Forenede Kongerige Accu WebHosting Servers in PolandPolen Accu WebHosting Servers in CanadaCanada Accu WebHosting Servers in SingaporeSingapore
Sammenligne
Score - 9
Be hostings Logo
Be hostings

Vær vært

StarterSSL
$3.36 /Månedlige


Serverplaceringer


Be hostings Servers in BrusselsBelgien
Sammenligne
Score - 4.3
Gear Host Logo
Gear Host

Gear vært

CloudSite Hobby
$5 /Månedlige


Serverplaceringer


Gear Host Servers in DenverForenede Stater
Sammenligne
Score - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Månedlige


Serverplaceringer


Mikro VPS Servers in BudapestUngarn
Sammenligne
Score - 0
Oudel Logo
Oudel

Oudel

cPanel Hosting 1
$5.95 /Månedlige


Serverplaceringer


Oudel Servers in UnionForenede Stater
Sammenligne

 

Node.js

 

 

Node.js er en open source JavaScript-runtime på tværs af platforme, der kører på servere. Siden udgivelsen i 2009 er denne platform blevet ekstremt populær og spiller en meget vigtig rolle inden for webudvikling i disse dage. Hvis vi betragter antallet af stjerner, som et projekt har samlet på GitHub som en indikator for popularitet, er Node.js, som har mere end 50.000 stjerner, et meget, meget populært projekt.

 

Node.js-platformen er bygget på Googles V8 JavaScript-motor, som bruges i Google Chrome-browseren. Denne platform bruges hovedsageligt til at oprette webservere, men dens omfang er ikke begrænset til dette.

 

Lad os se på hovedfunktionerne i Node.js.

 

Hastighed

 

En af hovedattraktionerne i Node.js er hastighed. JavaScript-kode, der udføres i Node.js, kan være dobbelt så hurtig som kode skrevet på kompilerede sprog som C eller Java og størrelsesordener hurtigere end tolket sprog som Python eller Ruby. Årsagen til dette er platformens ikke-blokerende arkitektur, og de specifikke resultater afhænger af de anvendte benchmarks, men generelt er Node.js en meget hurtig platform.

 

Enkelhed

 

Node.js-platformen er let at lære og bruge. Faktisk er det ligefrem meget simpelt, især når man sammenligner med nogle andre serverplatforme.

 

JavaScript

 

JavaScript udføres i Node.js-miljøet. Dette betyder, at millioner af front-end-udviklere, der allerede bruger JavaScript i browseren, kan skrive både server-side og klientside-kode på det samme programmeringssprog uden at skulle lære et helt nyt værktøj til at flytte til server-side-udvikling.

 

Browseren og serveren bruger de samme sprogkoncepter. Derudover kan Node.js hurtigt skifte til nye ECMAScript-standarder, når de implementeres på platformen.

 

Det er ikke nødvendigt at vente på, at brugerne opdaterer deres browsere til dette, da Node.js er et server-miljø, der er fuldstændig i kontrol med udvikleren. Som et resultat bliver nye sprogfunktioner tilgængelige, når du installerer en understøttende version af Node.js.

 

V8 motor

 

Kernen i Node.js er blandt andet Googles open source V8 JavaScript-motor, der bruges i Google Chrome og andre browsere. Dette betyder, at Node.js drager fordel af tusindvis af ingeniører, der gjorde JavaScript Chrome-runtime utroligt hurtigt og fortsætter med at arbejde hen imod forbedring af V8.

 

Asynkroni

 

I traditionelle programmeringssprog (C, Java, Python, PHP) blokerer alle instruktioner som standard, medmindre udvikleren udtrykkeligt tager sig af at udføre koden asynkront. Som et resultat, hvis du f.eks. I et sådant miljø fremsætter en netværksanmodning om at downloade en eller anden JSON-kode, suspenderes udførelsen af ​​den strøm, hvorfra anmodningen sendes, indtil svaret modtages og behandles.

 

JavaScript gør det meget nemmere at skrive asynkron og ikke-blokerende kode ved hjælp af en enkelt tråd, tilbagekald og en begivenhedsdrevet tilgang til udvikling. Hver gang vi har brug for at udføre en tung operation, videresender vi en tilbagekaldelse til den relevante mekanisme, som kaldes op umiddelbart efter afslutningen af ​​denne operation. Som et resultat er der ingen grund til at vente på resultaterne af sådanne operationer for at programmet fortsætter med at arbejde.

 

En lignende mekanisme stammer fra browsere. Vi har ikke råd til at vente, siger, enAJAXanmodning om at afslutte uden at være i stand til at reagere på brugerhandlinger, såsom klik på knapper. For at gøre det bekvemt for brugerne at arbejde med websider skal alt, både download af data fra netværket og behandling af knap-klik, ske samtidigt i realtid.

 

Hvis du nogensinde har oprettet en hændelseshåndterer med et klik på en knap, har du allerede brugt asynkrone programmeringsteknikker.

 

Asynkrone mekanismer gør det muligt for en enkelt Node.js-server at håndtere tusindvis af forbindelser samtidigt uden at belaste programmøren med trådadministrations- og paralleludførelsesopgaver. Sådanne ting er ofte fejlkilder.

 

Node.js forsyner udvikleren med ikke-blokerende grundlæggende I / O-mekanismer, og generelt er de biblioteker, der bruges i Node.js-rammen, skrevet ved hjælp af ikke-blokerende paradigmer.Dette gør blokering af adfærd til undtagelsen snarere end normen.

 

Når Node.js skal udføre en I / O-handling, såsom at indlæse data fra netværket, få adgang til en database eller filsystemet, i stedet for at blokere hovedtråden og vente på resultaterne af en sådan operation, vil Node.js starte sin udførelse og fortsæt med at gøre andre ting, indtil resultaterne af denne operation er modtaget.

 

Biblioteker

 

Med den lethed og bekvemmelighed at arbejde med en pakkehåndtering til Node.js kaldet npm, blomstrer Node.js-økosystemet. Der er nu over en halv million open source-pakker i npm-registreringsdatabasen, som enhver Node.js-udvikler frit kan bruge.

 

Efter at have gennemgået nogle af hovedfunktionerne i Node.js-platformen, lad os prøve det i aktion. Lad os starte med installationen.

 

 

Node.js

 

 

Installation af Node.js

 

Node.js kan installeres på en række forskellige måder, som vi dækker et øjeblik. Så de officielle installationspakker til alle større platforme kan findes.

 

Der er en anden meget bekvem måde at installere Node.js på, nemlig at bruge pakkehåndteringen i operativsystemet. For eksempel kaldes macOS pakkehåndtering, som de facto er standard i dette område, Homebrew.

 

Hvis du har en på dit system, kan du installere Node.js ved at køre denne kommando på kommandolinjen:

 

bryginstallationsnode

 

En liste over pakkehåndtere til andre operativsystemer, inklusive Linux og Windows, kan findes her.

 

En populær Node.js version manager er nvm. Dette værktøj giver dig mulighed for nemt at skifte mellem forskellige versioner af Node.js, med dens hjælp kan du for eksempel installere og prøve en ny version af Node.js og derefter om nødvendigt vende tilbage til den gamle. Nvm er også nyttigt i en situation, hvor du har brug for at teste noget kode på en gammel version af Node.js.

 

For begyndere at bruge de officielle Node.js-installationsprogrammer. For macOS-brugere vil man anbefale at installere Node.js ved hjælp af Homebrew. Nu hvor du har installeret Node.js, er det tid til at skrive "Hello World".

 

Første Node.js-applikation

 

Det mest almindelige eksempel på et første Node.js-program er en simpel webserver. Her er dens kode:

const http = kræve ('http')

const hostname = '127.0.0.1'

const port = 3000

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

res.statusCode = 200

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

res.end ('Hello World \ n')

})

server.listen (port, hostname, () = & gt; {

console.log (`Server, der kører på http: // $ {hostname}: $ {port} /`)

})

 

For at køre denne kode skal du gemme den i en filserver.js og køre følgende kommando i terminalen:

 

node server.js

 

For at kontrollere serveren skal du åbne en browser og indtaste i adresselinjen http://127.0.0.1:3000, det vil sige den serveradresse, der vises i konsollen efter den vellykkede lancering. Hvis alt fungerer som det skal, vil siden vise "Hello World".

 

Lad os se på dette eksempel.

 

Bemærk først, at koden indeholder kommandoen til at forbinde HTTP-modulet.

 

Node.js-platformen har et fremragende standardsæt af moduler, som inkluderer veludviklede mekanismer til at arbejde med netværket.

Objektmetoden createServer () http opretter en ny HTTP-server og returnerer den.

 

Serveren er konfigureret til at lytte på en bestemt port på en bestemt vært. Når serveren er klar, kaldes det tilsvarende tilbagekald, der informerer os om, at serveren kører.

Når serveren modtager en anmodning, udløses en begivenhed, der indeholder to objekter. Den første er anmodningen (req, http.IncomingMessage-objektet), den anden er svaret (res, http.ServerResponse-objektet). De er de vigtigste mekanismer til håndtering af HTTP-anmodninger.

 

Den første giver os oplysninger om anmodningen. I vores enkle eksempel bruger vi ikke disse data, men om nødvendigt ved hjælp af objektet kan reqyou få adgang til anmodningsoverskrifterne og de data, der sendes i det.

 

Det andet er nødvendigt for at danne og sende et svar på en anmodning.

 

I dette tilfælde danner vi svaret på anmodningen som følger. Først indstiller vi egenskabens statuskode til en værdi på 200, hvilket indikerer en vellykket operation:

 

res.statusCode = 200

Dernæst indstiller vi titlen Content-Type:

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

Vi afslutter derefter forberedelsen af ​​svaret ved at tilføje dets indhold som et argument til metoden slutningen ():

res.end ('Hello World \ n')

 

Vi har allerede nævnt, at der er dannet et stærkt økosystem omkring Node.js-platformen. Lad os nu diskutere nogle populære rammer og hjælperedskaber til Node.js.

 

Frameworks og Helper Tools til Node.js

 

Node.js er en platform på lavt niveau. For at forenkle udviklingen for det og gøre livet lettere for programmører er der oprettet et stort antal biblioteker. Nogle af dem er blevet meget populære over tid. Her er en lille liste over biblioteker, som jeg synes er godt udført og værd at udforske:

 

Express: Dette bibliotek giver udvikleren et ekstremt simpelt, men alligevel kraftfuldt værktøj til opbygning af webservere. Nøglen til Express's succes har været en minimalistisk tilgang og fokus på grundlæggende mekanismer på serversiden uden at forsøge at påtvinge en vision om "one-stop" serverarkitektur.

 

Meteor: Det er en stærk full-stack-ramme, der tager en isomorf tilgang til at udvikle JavaScript-applikationer og bruge kode på både klienten og serveren. Engang var Meteor et enkeltstående værktøj, der indeholder alt, hvad en udvikler kunne have brug for. Det integreres nu også med frontend-biblioteker som React, Vue og Angular. Udover at udvikle almindelige webapplikationer kan Meteor også bruges i mobiludvikling.

 

Koa: Denne webramme er bygget af det samme team bag Express. Baseret på mange års erfaring med Express blev den udviklet med fokus på enkelhed og kompaktitet. Dette projekt opstod som en løsning på problemet med at foretage større ændringer i Express, der er uforenelige med andre rammemekanismer, der kunne splitte samfundet.

 

Next.js: Denne ramme er designet til at organisere server-side gengivelse af React applikationer.

 

Micro: Det er et meget let bibliotek til opbygning af asynkrone HTTP-mikrotjenester.

Socket.io. Det er et bibliotek til udvikling af realtids netværksapplikationer.

 

Faktisk i Node.js-økosystemet kan du finde et hjælperbibliotek til næsten enhver opgave. Som du kan forestille dig, tager det meget tid at opbygge et sådant økosystem. Node.js-platformen dukkede op i 2009. I løbet af dens eksistens er der sket mange ting, der burde være kendt af en programmør, der ønsker at lære denne platform.

 

En kort historie om Node.js

 

Node.js er 9 år i år. Dette er naturligvis ikke så meget, når du sammenligner denne alder med JavaScript-alderen, som allerede er 23 år gammel, eller med 25-årsalderen på nettet, som vi kender det, hvis du regner med fra mosaikens fremkomst browser.

 

9 år er kort tid for teknologi, men nu ser det ud til, at Node.js-platformen altid har eksisteret.

 

Med Node.js fra tidlige versioner af platformen, da den kun var 2 år gammel. Selv da, på trods af at der ikke var så meget information om Node.js, kunne man allerede føle, at Node.js er meget seriøs.

 

Lad os nu tale om teknologierne bag Node.js og kigge hurtigt påvigtigste udviklinger relateret til denne platform.

 

Så JavaScript er et programmeringssprog, der blev oprettet i Netscape som et script-sprog til manipulation af websider i Netscape Navigator-browseren.

En del af Netscapes forretning var salg af webservere, som omfattede et miljø kaldet Netscape LiveWire. Det tillod dig at oprette dynamiske websider ved hjælp af JavaScript på serversiden.

 

ideen om at bruge JS til udvikling af serversiden er meget ældre end Node.js. Denne idé er næsten lige så gammel som selve JavaScript, men på det pågældende tidspunkt var JS på serversiden ikke populær.

 

En af de nøglefaktorer, der gjorde Node.js-platformen så udbredt og populær er, da den første gang dukkede op. Så nogle år tidligere var JavaScript begyndt at betragtes som et seriøst sprog. Dette skete takket være Web 2.0-applikationer som Google Maps eller Gmail, som viste verden styrken ved moderne webteknologier.

 

Takket være den konkurrencedygtige browserkrig, der fortsætter den dag i dag, er JavaScript-motorernes ydeevne steget markant. Udviklingsteamene bag de store browsere arbejder hver dag for at forbedre ydelsen af ​​deres løsninger, hvilket har en gavnlig effekt på JavaScript generelt.

 

En sådan motor er den allerede nævnte V8, der bruges i Chrome-browseren og bruges i Node.js. Det er et af resultaterne fra browserudviklere, der stræber efter højtydende JavaScript-kode.

 

Selvfølgelig er Node.js 'popularitet ikke kun baseret på en heldig tilfældighed og på det faktum, at platformen blev født på det rigtige tidspunkt. Hun introducerede verden til en innovativ tilgang til JavaScript-udvikling på serversiden. Lad os se på de store milepæle i Node.js.'s historie.

 

2009


  • Fremkomsten af ​​Node.js

  • At lave den første npm-variant.

 

2010

  • Expressens udseende.

  • Fremkomsten af ​​Socket.io.

 

2011


  • Npm 1.0 frigivelse.

  • Store virksomheder som LinkedIn og Uber er begyndt at bruge Node.js.

 

2012


  • Den hurtige stigning i popularitet af Node.js.

 

2013


  • Fremkomsten af ​​Ghost, den første store platform for publikationer, der bruger Node.js.

  • Koa frigivelse.

 

2014


  • Dramatiske begivenheder har fundet sted i år. IO.js-projektet dukkede op, som er en fork af Node.js, hvis formål blandt andet var at indføre ES6-support og fremskynde udviklingen af ​​platformen.

 

2015


  • Node.js Foundation er grundlagt.

  • Fletning af IO.js og Node.js.

  • I npm bliver det muligt at arbejde med private moduler.

  • Yield Node.js 4 (det skal bemærkes, at version 1, 2 og 3 fra platformen ikke var).

 

2016


  • Venstre-pad pakke hændelse.

  • Fremkomsten af ​​garn.

  • Node.js 6 frigivelse.

 

2017


  • Npm begynder at være mere opmærksom på sikkerheden.

  • Node.js 8 frigivelse

  • Fremkomsten af ​​understøttelse af HTTP / 2.

  • V8 er officielt anerkendt som en JS-motor designet ikke kun til Chrome, men også til Node.

  • Der er 3 milliarder npm downloads hver uge.

 

2018


  • Node.js 10 frigivelse.

  • Understøttelse af ES-moduler.

  • Eksperimentel mjs-support.